<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Skilful: Исходный файл Skilful/MainForm.cs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Создано системой Doxygen 1.7.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Поиск');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Титульная&nbsp;страница</span></a></li>
      <li><a href="namespaces.html"><span>Пакеты</span></a></li>
      <li><a href="annotated.html"><span>Классы</span></a></li>
      <li class="current"><a href="files.html"><span>Файлы</span></a></li>
      <li><a href="dirs.html"><span>Алфавитный&nbsp;указатель&nbsp;директорий</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Поиск" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Файлы</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="dir_7adcdc1edff7620168fbc20357cad448.html">Skilful</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>MainForm.cs</h1>  </div>
</div>
<div class="contents">
<a href="_main_form_8cs.html">См. документацию.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 ﻿<span class="comment">//---------------------------------------------------------------------------------------------------------------</span>
<a name="l00002"></a>00002 <span class="comment">// Skilful. Tactica Adversa graphic and analysis tool.</span>
<a name="l00003"></a>00003 <span class="comment">// Copyright (C) 2010 &quot;...&quot;, Alex Kokomov(Loylick), Andrey Prokhorov(AVP), Andrey Zyablitsev (skat),</span>
<a name="l00004"></a>00004 <span class="comment">//                    Eugeniy Bazarov(obolon), Isabek Satybekov, Logvinenko Eugeniy (manuka), Pavel Kadomin (S_PASHKA) </span>
<a name="l00005"></a>00005 <span class="comment">//</span>
<a name="l00006"></a>00006 <span class="comment">// This program is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment">// modify it under the terms of the GNU General Public License</span>
<a name="l00008"></a>00008 <span class="comment">// as published by the Free Software Foundation; either version 2</span>
<a name="l00009"></a>00009 <span class="comment">// of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment">//</span>
<a name="l00011"></a>00011 <span class="comment">// This program is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="l00014"></a>00014 <span class="comment">// GNU General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment">//</span>
<a name="l00016"></a>00016 <span class="comment">// You should have received a copy of the GNU General Public License</span>
<a name="l00017"></a>00017 <span class="comment">// along with this program; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.</span>
<a name="l00019"></a>00019 <span class="comment">//</span>
<a name="l00020"></a>00020 <span class="comment">// mail: support@protoforma.com </span>
<a name="l00021"></a>00021 <span class="comment">//---------------------------------------------------------------------------------------------------------------</span>
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="keyword">using</span> System;
<a name="l00025"></a>00025 <span class="keyword">using</span> System.Collections.Generic;
<a name="l00026"></a>00026 <span class="keyword">using</span> System.ComponentModel;
<a name="l00027"></a>00027 <span class="keyword">using</span> System.Data;
<a name="l00028"></a>00028 <span class="keyword">using</span> System.Drawing;
<a name="l00029"></a>00029 <span class="keyword">using</span> System.Drawing.Printing;
<a name="l00030"></a>00030 <span class="keyword">using</span> System.Linq;
<a name="l00031"></a>00031 <span class="keyword">using</span> System.Text;
<a name="l00032"></a>00032 <span class="keyword">using</span> System.Windows.Forms;
<a name="l00033"></a>00033 <span class="keyword">using</span> System.Threading;
<a name="l00034"></a>00034 <span class="keyword">using</span> System.Globalization;
<a name="l00035"></a>00035 <span class="keyword">using</span> System.IO;
<a name="l00036"></a>00036 <span class="keyword">using</span> System.Xml;
<a name="l00037"></a>00037 <span class="keyword">using</span> Skilful.Properties;
<a name="l00038"></a>00038 <span class="keyword">using</span> Microsoft.Win32;
<a name="l00039"></a>00039 <span class="keyword">using</span> Skilful.Data;
<a name="l00040"></a>00040 <span class="keyword">using</span> Skilful.Statistics;
<a name="l00041"></a>00041 <span class="keyword">using</span> Skilful.QuotesManager;
<a name="l00042"></a>00042 <span class="keyword">using</span> System.Diagnostics;
<a name="l00043"></a>00043 <span class="keyword">using</span> System.Runtime.InteropServices;
<a name="l00044"></a>00044 <span class="keyword">using</span> System.Runtime.Serialization.Formatters.Binary;
<a name="l00045"></a>00045 <span class="keyword">using</span> ChartV2;
<a name="l00046"></a>00046 <span class="keyword">using</span> ChartV2.Data;
<a name="l00047"></a>00047 <span class="keyword">using</span> ChartV2.Styles;
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 <span class="keyword">namespace </span>Skilful
<a name="l00050"></a>00050 {
<a name="l00051"></a>00051     <span class="keyword">public</span> delegate <span class="keywordtype">void</span> <a class="code" href="namespace_skilful.html#abba84a9cb226ffe788911f3d40f8a33b">NewTickHandler</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName, DateTime time, <span class="keywordtype">double</span> bid, <span class="keywordtype">double</span> ask);
<a name="l00052"></a>00052     <span class="keyword">public</span> delegate <span class="keywordtype">void</span> <a class="code" href="namespace_skilful.html#afa028ff8810ba3dd5607507e8ec1aca2">NewBarHandler</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName, <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> frame<span class="comment">/*, TBar bar, bool completed*/</span>, <span class="keywordtype">int</span> idx);
<a name="l00053"></a>00053     <span class="keyword">public</span> delegate <span class="keywordtype">void</span> <a class="code" href="namespace_skilful.html#aa18f7e24d8e44ea6f27601a10812ce10">LibMsgHandler</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName, <span class="keywordtype">int</span> code, <span class="keywordtype">string</span> message);
<a name="l00054"></a>00054     <span class="keyword">public</span> delegate <span class="keywordtype">void</span> <a class="code" href="namespace_skilful.html#af55054eca37e69b97a367fed9c074fa1">RefreshHistoryHandler</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName);
<a name="l00055"></a>00055 
<a name="l00056"></a><a class="code" href="class_skilful_1_1_main_form.html">00056</a>     <span class="keyword">public</span> <span class="keyword">partial class </span><a class="code" href="class_skilful_1_1_main_form.html">MainForm</a> : Form
<a name="l00057"></a>00057     {
<a name="l00058"></a>00058         <span class="comment">//public DataSourceLibraryLoader DataSource;</span>
<a name="l00059"></a>00059 
<a name="l00060"></a>00060         <span class="keyword">private</span> <span class="keyword">const</span> <span class="keywordtype">int</span> WM_MT4INIT = 0x0700;
<a name="l00061"></a>00061         <span class="keyword">private</span> <span class="keyword">const</span> <span class="keywordtype">int</span> WM_MT4HISTORY = 0x0701;
<a name="l00062"></a>00062         <span class="keyword">private</span> <span class="keyword">const</span> <span class="keywordtype">int</span> WM_MT4UPDATE = 0x0702;
<a name="l00063"></a>00063         <span class="keyword">private</span> <span class="keyword">const</span> <span class="keywordtype">int</span> WM_MT4TICK = 0x0704,
<a name="l00064"></a>00064                           WM_MT4TICK_BID = 0x0705,
<a name="l00065"></a>00065                           WM_MT4TICK_ASK = 0x0706,
<a name="l00066"></a>00066                           WM_MT4PIPVAL = 0x707;
<a name="l00067"></a>00067         <span class="keyword">private</span> <span class="keyword">const</span> <span class="keywordtype">int</span> WM_MT4CONNECTIONLOST = 0x0703;
<a name="l00068"></a><a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">00068</a>         <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html">MTproxy</a> <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a> = <span class="keyword">new</span> <a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html">MTproxy</a>();
<a name="l00069"></a><a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">00069</a>         <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_skilful_1_1_data_1_1_m_t4messages.html">MT4messages</a> <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a> = <span class="keyword">new</span> <a class="code" href="class_skilful_1_1_data_1_1_m_t4messages.html">MT4messages</a>();
<a name="l00070"></a>00070 
<a name="l00071"></a><a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">00071</a>         <span class="keyword">public</span> <a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html">MDataManager</a> <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>;
<a name="l00072"></a><a class="code" href="class_skilful_1_1_main_form.html#ae56efd171b070da4e0a7f38db03d4b8d">00072</a>         <span class="keyword">public</span> <span class="keyword">static</span> List&lt;Working&gt; <a class="code" href="class_skilful_1_1_main_form.html#ae56efd171b070da4e0a7f38db03d4b8d">workingCharts</a> = <span class="keyword">new</span> List&lt;Working&gt;();
<a name="l00073"></a><a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">00073</a>         <span class="keyword">public</span> List&lt;Save&gt; <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a> = <span class="keyword">new</span> List&lt;Save&gt;();
<a name="l00074"></a><a class="code" href="class_skilful_1_1_main_form.html#ab88c4d7d67a1ea05bd4f8c5f0bf3f768">00074</a>         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">event</span> <a class="code" href="namespace_skilful.html#abba84a9cb226ffe788911f3d40f8a33b">NewTickHandler</a> NewTick;
<a name="l00075"></a><a class="code" href="class_skilful_1_1_main_form.html#aace9600ba4568c84c93cbdcafb8113df">00075</a>         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">event</span> <a class="code" href="namespace_skilful.html#afa028ff8810ba3dd5607507e8ec1aca2">NewBarHandler</a> NewBar;
<a name="l00076"></a><a class="code" href="class_skilful_1_1_main_form.html#ac01a97429b3776a84fb4c9801095d301">00076</a>         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">event</span> <a class="code" href="namespace_skilful.html#af55054eca37e69b97a367fed9c074fa1">RefreshHistoryHandler</a> RefreshHistory;
<a name="l00077"></a><a class="code" href="class_skilful_1_1_main_form.html#a05cfd725c1ccecf8b443cfdf793804fc">00077</a>         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_skilful_1_1_main_form.html#a05cfd725c1ccecf8b443cfdf793804fc">ShowHypotheticalTarget</a> = <span class="keyword">true</span>;
<a name="l00078"></a><a class="code" href="class_skilful_1_1_main_form.html#a8e7b08df82dbf48017f247408aff8865">00078</a>         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_skilful_1_1_main_form.html#a8e7b08df82dbf48017f247408aff8865">ShowIndexCheckedModel</a> = <span class="keyword">true</span>;
<a name="l00079"></a><a class="code" href="class_skilful_1_1_main_form.html#a0f485248512a37edd4503375da1f8e82">00079</a>         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_skilful_1_1_main_form.html#a0f485248512a37edd4503375da1f8e82">ShowSourceName</a> = <span class="keyword">true</span>;
<a name="l00080"></a><a class="code" href="class_skilful_1_1_main_form.html#a064e5300891d789af659ec3b3ca7a541">00080</a>         <span class="keyword">public</span> <a class="code" href="class_skilful_1_1_sample.html">Sample</a> <a class="code" href="class_skilful_1_1_main_form.html#a064e5300891d789af659ec3b3ca7a541">smp</a>;
<a name="l00081"></a>00081 
<a name="l00082"></a>00082 
<a name="l00083"></a><a class="code" href="class_skilful_1_1_main_form.html#a8d5bb0b2aa64a79c4f5e4f6318ce161b">00083</a>         <span class="keyword">public</span> <a class="code" href="class_skilful_1_1_main_form.html#a8d5bb0b2aa64a79c4f5e4f6318ce161b">MainForm</a>()
<a name="l00084"></a>00084         {
<a name="l00085"></a>00085             Thread.CurrentThread.CurrentCulture = <span class="keyword">new</span> CultureInfo(<span class="stringliteral">&quot;en-US&quot;</span>);
<a name="l00086"></a>00086             InitializeComponent();
<a name="l00087"></a>00087             <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a> = <span class="keyword">new</span> <a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html">MDataManager</a>(<a class="code" href="class_skilful_1_1_main_form.html#a78157fdf0f168ee03aec279d36153c70">Tick2Chart</a>, <a class="code" href="class_skilful_1_1_main_form.html#ad6aebd0ea0caf371c31aea7a7ea2f613">Bar2Chart</a>, <a class="code" href="class_skilful_1_1_main_form.html#a524b609120dfb8d661dc2a1102761870">DataSource_Message</a>, <a class="code" href="class_skilful_1_1_main_form.html#a3315b6a5806771d59517c3419594541e">RefreshHistoryData</a>);
<a name="l00088"></a>00088             InitSymbolsTreeView();
<a name="l00089"></a>00089             <a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.Selected += <span class="keyword">new</span> TabControlEventHandler(tabControl_Selected);
<a name="l00090"></a>00090             System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = <span class="keyword">false</span>;
<a name="l00091"></a>00091             
<a name="l00092"></a>00092         }
<a name="l00093"></a>00093 
<a name="l00094"></a>00094 
<a name="l00095"></a>00095         <span class="comment">//------------------------------------------------------//</span>
<a name="l00096"></a>00096         <span class="keyword">private</span> <span class="keywordtype">int</span> Get_Index_Current_workingChart()
<a name="l00097"></a>00097         {
<a name="l00098"></a>00098             <span class="keywordtype">int</span> i = -1;
<a name="l00099"></a>00099             <span class="keywordflow">if</span> (ActiveMdiChild != null)
<a name="l00100"></a>00100                 <span class="keywordflow">foreach</span> (<a class="code" href="class_skilful_1_1_working.html">Working</a> w <span class="keywordflow">in</span> <a class="code" href="class_skilful_1_1_main_form.html#ae56efd171b070da4e0a7f38db03d4b8d">workingCharts</a>)
<a name="l00101"></a>00101                     <span class="keywordflow">if</span> (w.<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Handle == <span class="keyword">this</span>.ActiveMdiChild.Handle)
<a name="l00102"></a>00102                         i = workingCharts.IndexOf(w);
<a name="l00103"></a>00103             <span class="keywordflow">return</span> i;
<a name="l00104"></a>00104         }
<a name="l00105"></a>00105         ChartV2.Control ActiveChart
<a name="l00106"></a>00106         {
<a name="l00107"></a>00107             <span class="keyword">get</span>
<a name="l00108"></a>00108             {
<a name="l00109"></a>00109                 <span class="keywordflow">return</span> (ChartV2.Control)workingCharts[Get_Index_Current_workingChart()].ActiveChart;
<a name="l00110"></a>00110             }
<a name="l00111"></a>00111         }
<a name="l00112"></a>00112         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00113"></a><a class="code" href="class_skilful_1_1_main_form.html#a78157fdf0f168ee03aec279d36153c70">00113</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#a78157fdf0f168ee03aec279d36153c70">Tick2Chart</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName, DateTime time, <span class="keywordtype">double</span> bid, <span class="keywordtype">double</span> ask)
<a name="l00114"></a>00114         {
<a name="l00115"></a>00115             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#ab88c4d7d67a1ea05bd4f8c5f0bf3f768">NewTick</a> != null) <a class="code" href="class_skilful_1_1_main_form.html#ab88c4d7d67a1ea05bd4f8c5f0bf3f768">NewTick</a>(SourceName, SymbolName, time, bid, ask);
<a name="l00116"></a>00116         }
<a name="l00117"></a><a class="code" href="class_skilful_1_1_main_form.html#ad6aebd0ea0caf371c31aea7a7ea2f613">00117</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#ad6aebd0ea0caf371c31aea7a7ea2f613">Bar2Chart</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName, <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> frame, <span class="keywordtype">int</span> idx)
<a name="l00118"></a>00118         {
<a name="l00119"></a>00119             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#aace9600ba4568c84c93cbdcafb8113df">NewBar</a> != null) <a class="code" href="class_skilful_1_1_main_form.html#aace9600ba4568c84c93cbdcafb8113df">NewBar</a>(SourceName, SymbolName, frame, idx);
<a name="l00120"></a>00120         }
<a name="l00121"></a><a class="code" href="class_skilful_1_1_main_form.html#a524b609120dfb8d661dc2a1102761870">00121</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#a524b609120dfb8d661dc2a1102761870">DataSource_Message</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName, <span class="keywordtype">int</span> code, <span class="keywordtype">string</span> text)
<a name="l00122"></a>00122         {
<a name="l00123"></a>00123             MessageBox.Show(text);
<a name="l00124"></a>00124         }
<a name="l00125"></a><a class="code" href="class_skilful_1_1_main_form.html#a3315b6a5806771d59517c3419594541e">00125</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#a3315b6a5806771d59517c3419594541e">RefreshHistoryData</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName)
<a name="l00126"></a>00126         {
<a name="l00127"></a>00127             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#ac01a97429b3776a84fb4c9801095d301">RefreshHistory</a> != null) <a class="code" href="class_skilful_1_1_main_form.html#ac01a97429b3776a84fb4c9801095d301">RefreshHistory</a>(SourceName, SymbolName);
<a name="l00128"></a>00128         }
<a name="l00129"></a><a class="code" href="class_skilful_1_1_main_form.html#aa33d08d7c73eb3a7793fd0b9a4a57ee5">00129</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#aa33d08d7c73eb3a7793fd0b9a4a57ee5">CreateChart</a>(<a class="code" href="class_skilful_1_1_data_1_1_data_sourse_module.html">DataSourseModule</a> DataSource, <span class="keywordtype">string</span> ChartName, <span class="keywordtype">string</span> SymbolName, <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> tf, TreeNode sourceTreeNode, <span class="keywordtype">int</span> digits)
<a name="l00130"></a>00130         {
<a name="l00131"></a>00131             <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;Opening &quot;</span> + ChartName + <span class="stringliteral">&quot; start&quot;</span>);
<a name="l00132"></a>00132             <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_t4messages.html#af23538ec828cd0a15dfb053924a3dd1e">AddMessage</a>(<span class="stringliteral">&quot;Opening &quot;</span> + ChartName + <span class="stringliteral">&quot; start&quot;</span>);
<a name="l00133"></a>00133             <a class="code" href="class_skilful_1_1_working.html">Working</a> workingChart = <span class="keyword">new</span> <a class="code" href="class_skilful_1_1_working.html">Working</a>();
<a name="l00134"></a>00134             <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html">TSymbol</a> Symbol = <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#a81efd293d62dc9a4df5364d67b7d08ba" title="возвращает объект TSymbol ассоциированный с данными ModuleName и SymbolName.">GetSymbol</a>(DataSource, SymbolName);
<a name="l00135"></a>00135             <span class="keywordflow">if</span> (Symbol == null)
<a name="l00136"></a>00136             {
<a name="l00137"></a>00137                 MessageBox.Show(<span class="stringliteral">&quot;Can not get Symbol &quot;</span> + SymbolName);
<a name="l00138"></a>00138                 <span class="keywordflow">return</span>;
<a name="l00139"></a>00139             }
<a name="l00140"></a>00140             <span class="keywordflow">if</span> (digits &lt; 100) Symbol.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#af7832f365811be20522aac9efa2026a0">setPipValue</a>(digits);
<a name="l00141"></a>00141             <span class="keywordflow">if</span> (workingChart.<a class="code" href="class_skilful_1_1_working.html#a1ce33efda445f95dd4d137550b1335c9">Get_ManagedData</a>(ChartName, SymbolName, Symbol.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a58899266fdc033e08e63b5cfec6495d8" title="массивы котировок TQuotes[ChartType, TimeFrame].">Frames</a>[(<span class="keywordtype">int</span>)ChartV2.ChartType.Candle, (<span class="keywordtype">int</span>)tf])) <span class="keywordflow">return</span>;
<a name="l00142"></a>00142             workingChart_init(workingChart);
<a name="l00143"></a>00143             workingChart.<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Tag = sourceTreeNode;
<a name="l00144"></a>00144             workingChart.<a class="code" href="class_skilful_1_1_working.html#a24a6affb37fd3dcebbc3bc3b150dde72">tf</a> = tf;
<a name="l00145"></a>00145             workingChart.<a class="code" href="class_skilful_1_1_working.html#ae1ff55f001d42651fe0dba6c280d3f64">tn</a> = sourceTreeNode;
<a name="l00146"></a>00146 
<a name="l00147"></a>00147             <span class="comment">//реалтайм функции получения данных</span>
<a name="l00148"></a>00148             <a class="code" href="class_skilful_1_1_main_form.html#ab88c4d7d67a1ea05bd4f8c5f0bf3f768">NewTick</a> += <span class="keyword">new</span> <a class="code" href="namespace_skilful.html#abba84a9cb226ffe788911f3d40f8a33b">NewTickHandler</a>(workingChart.<a class="code" href="class_skilful_1_1_working.html#a7d202928debc94ed2f36187f44487614">NewTick</a>);
<a name="l00149"></a>00149             <a class="code" href="class_skilful_1_1_main_form.html#aace9600ba4568c84c93cbdcafb8113df">NewBar</a> += <span class="keyword">new</span> <a class="code" href="namespace_skilful.html#afa028ff8810ba3dd5607507e8ec1aca2">NewBarHandler</a>(workingChart.<a class="code" href="class_skilful_1_1_working.html#ae169c0c586e14c7fa7344e5848d31e93" title="событие инициируется при добавлении нового бара через датасурс.">NewBar</a>);
<a name="l00150"></a>00150             <a class="code" href="class_skilful_1_1_main_form.html#ac01a97429b3776a84fb4c9801095d301">RefreshHistory</a> += <span class="keyword">new</span> <a class="code" href="namespace_skilful.html#af55054eca37e69b97a367fed9c074fa1">RefreshHistoryHandler</a>(workingChart.<a class="code" href="class_skilful_1_1_working.html#afbd80faa65124d9215173629ecaa48d6">RefreshHistory</a>);
<a name="l00151"></a>00151 
<a name="l00152"></a>00152             <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;Drawing &quot;</span> + ChartName + <span class="stringliteral">&quot; finished&quot;</span>);
<a name="l00153"></a>00153             <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_t4messages.html#af23538ec828cd0a15dfb053924a3dd1e">AddMessage</a>(<span class="stringliteral">&quot;Drawing &quot;</span> + ChartName + <span class="stringliteral">&quot; finished&quot;</span>);
<a name="l00154"></a>00154         }
<a name="l00155"></a>00155         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00156"></a>00156         <span class="keyword">private</span> <span class="keywordtype">void</span> newToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00157"></a>00157         {
<a name="l00158"></a>00158             <span class="comment">//Открытие нового графика из контекстного меню главного окна</span>
<a name="l00159"></a>00159 
<a name="l00160"></a>00160             openFileDialog.Filter = <span class="stringliteral">&quot;ASCII files (*.prn)|*.prn|All files|*.*&quot;</span>;
<a name="l00161"></a>00161             <span class="keywordflow">if</span> (openFileDialog.ShowDialog() == DialogResult.OK)
<a name="l00162"></a>00162             {
<a name="l00163"></a>00163                 <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;Opening &quot;</span> + openFileDialog.FileName + <span class="stringliteral">&quot; start&quot;</span>);
<a name="l00164"></a>00164                 <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_t4messages.html#af23538ec828cd0a15dfb053924a3dd1e">AddMessage</a>(<span class="stringliteral">&quot;Opening &quot;</span> + openFileDialog.FileName + <span class="stringliteral">&quot; start&quot;</span>);
<a name="l00165"></a>00165                 FileOpen(openFileDialog.FileName);
<a name="l00166"></a>00166             }
<a name="l00167"></a>00167             Logging.Log(<span class="stringliteral">&quot;Drawing &quot;</span> + openFileDialog.FileName + <span class="stringliteral">&quot; finished&quot;</span>);
<a name="l00168"></a>00168             <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_t4messages.html#af23538ec828cd0a15dfb053924a3dd1e">AddMessage</a>(<span class="stringliteral">&quot;Drawing &quot;</span> + openFileDialog.FileName + <span class="stringliteral">&quot; finished&quot;</span>);
<a name="l00169"></a>00169         }
<a name="l00170"></a>00170 
<a name="l00171"></a>00171         <span class="keywordtype">void</span> FileOpen(<span class="keywordtype">string</span> FileOpenName)
<a name="l00172"></a>00172         {
<a name="l00173"></a>00173             <span class="keywordflow">try</span>
<a name="l00174"></a>00174             {
<a name="l00175"></a>00175                 Working workingChart = <span class="keyword">new</span> Working();
<a name="l00176"></a>00176                 <span class="keywordflow">if</span> (workingChart.Get_Data_Off_Line(FileOpenName, Path.GetFileName(FileOpenName))) <span class="keywordflow">return</span>;
<a name="l00177"></a>00177                 workingChart_init(workingChart);
<a name="l00178"></a>00178             }
<a name="l00179"></a>00179             <span class="keywordflow">catch</span>
<a name="l00180"></a>00180             {
<a name="l00181"></a>00181                 MessageBox.Show(FileOpenName + <span class="stringliteral">&quot; has unsatisfied file format.&quot;</span>, <span class="stringliteral">&quot;Skilful&quot;</span>, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
<a name="l00182"></a>00182             }
<a name="l00183"></a>00183         }
<a name="l00184"></a>00184 
<a name="l00185"></a>00185         <span class="comment">//---+++++-----------------------------------------------//</span>
<a name="l00186"></a>00186         <span class="keywordtype">void</span> workingChart_init(Working workingChart)
<a name="l00187"></a>00187         {
<a name="l00188"></a>00188             workingChart.Button_Search_Complete_ += <span class="keyword">new</span> <a class="code" href="namespace_skilful.html#ada16d8d3f132ccfc871b3bc07904148b">Search_Complete</a>(<a class="code" href="class_skilful_1_1_main_form.html#af1753d91f719139b807ccbaae01db1d0">workingChart_Button_Search_Complete_</a>);
<a name="l00189"></a>00189             workingChart.workingForm.FormClosed += <span class="keyword">new</span> FormClosedEventHandler(chartClosed_FormClosed);
<a name="l00190"></a>00190             workingChart.workingForm.MdiParent = <span class="keyword">this</span>;
<a name="l00191"></a>00191             workingChart.Plot_Chart();
<a name="l00192"></a>00192             workingChart.workingForm.Show();
<a name="l00193"></a>00193             workingChart.ActiveChart.Switch_charts_ += <span class="keyword">new</span> ChartV2.Switch_charts(ActiveChart_Switch_charts_);
<a name="l00194"></a>00194             <span class="keywordflow">if</span> (workingChart.workingForm.WindowState == FormWindowState.Maximized)
<a name="l00195"></a>00195             {
<a name="l00196"></a>00196                 workingChart.workingForm.WindowState = FormWindowState.Normal;
<a name="l00197"></a>00197                 workingChart.workingForm.WindowState = FormWindowState.Maximized;
<a name="l00198"></a>00198             }
<a name="l00199"></a>00199 
<a name="l00200"></a>00200             Add_menuItem_menuWindow(workingChart.workingForm.Text, workingChart.workingForm.Handle);
<a name="l00201"></a>00201             Add_TabItem_tabControl(workingChart.workingForm.Text, workingChart.workingForm.Handle);
<a name="l00202"></a>00202 
<a name="l00203"></a>00203             workingCharts.Add(workingChart);
<a name="l00204"></a>00204 
<a name="l00205"></a>00205             Set_Switch_Search_models();
<a name="l00206"></a>00206         }
<a name="l00207"></a>00207 
<a name="l00208"></a>00208 
<a name="l00209"></a>00209 
<a name="l00210"></a>00210 
<a name="l00211"></a>00211 
<a name="l00212"></a>00212         <span class="keyword">private</span> <span class="keywordtype">void</span> chartClosed_FormClosed(<span class="keywordtype">object</span> sender, FormClosedEventArgs e)
<a name="l00213"></a>00213         {
<a name="l00214"></a>00214             <span class="keywordtype">int</span> i;
<a name="l00215"></a>00215             <span class="keywordflow">if</span> (this.ActiveMdiChild != null)
<a name="l00216"></a>00216             {
<a name="l00217"></a>00217                 i = Get_Index_Current_workingChart();
<a name="l00218"></a>00218                 <span class="keywordflow">if</span> ((e.CloseReason == CloseReason.MdiFormClosing) &amp; (!Save.save_))
<a name="l00219"></a>00219                 {
<a name="l00220"></a>00220                     Save.save_ = <span class="keyword">true</span>;
<a name="l00221"></a>00221                     Save_Out(i);
<a name="l00222"></a>00222                 }
<a name="l00223"></a>00223                 Remove_menuItem_menuWindow(workingCharts[i].workingForm.Handle);
<a name="l00224"></a>00224                 Remove_TabItem_tabControl(workingCharts[i].workingForm.Handle);
<a name="l00225"></a>00225 
<a name="l00226"></a>00226                 <span class="comment">//if (workingCharts[i].ActiveChart.bgWorker != null &amp;&amp; workingCharts[i].ActiveChart.bgWorker.IsBusy) workingCharts[i].Stop_Search();</span>
<a name="l00227"></a>00227                 <span class="keywordflow">if</span> (workingCharts[i].bgWorker != null &amp;&amp; workingCharts[i].bgWorker.IsBusy) workingCharts[i].Stop_Search();
<a name="l00228"></a>00228                 workingCharts.RemoveAt(i);
<a name="l00229"></a>00229 
<a name="l00230"></a>00230                 (this.ActiveMdiChild).<a class="code" href="class_skilful_1_1_main_form.html#aafe87d49773de5a821387eec50a38818" title="Clean up any resources being used.">Dispose</a>();
<a name="l00231"></a>00231             }
<a name="l00232"></a>00232         }
<a name="l00233"></a>00233 
<a name="l00234"></a>00234 
<a name="l00235"></a>00235 
<a name="l00236"></a>00236         <span class="keyword">private</span> <span class="keywordtype">void</span> MainForm_MdiChildActivate(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00237"></a>00237         {
<a name="l00238"></a>00238 
<a name="l00239"></a>00239             <span class="keywordflow">if</span> (this.ActiveMdiChild != null)
<a name="l00240"></a>00240             {
<a name="l00241"></a>00241                 <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l00242"></a>00242                 <span class="keywordflow">if</span> (i != -1)
<a name="l00243"></a>00243                 {
<a name="l00244"></a>00244                     <span class="keywordflow">if</span> (workingCharts[i].flagSerch)
<a name="l00245"></a>00245                     {
<a name="l00246"></a>00246                         Set_Switch_Search_Complete();
<a name="l00247"></a>00247 
<a name="l00248"></a>00248                         <span class="keywordflow">if</span> (workingCharts[i].bgWorker != null &amp;&amp; workingCharts[i].bgWorker.IsBusy)
<a name="l00249"></a>00249                             Set_Switch_Stop_Search();
<a name="l00250"></a>00250                     }
<a name="l00251"></a>00251                     <span class="keywordflow">else</span>
<a name="l00252"></a>00252                         Set_Switch_Search_models();
<a name="l00253"></a>00253 
<a name="l00254"></a>00254                     <a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.SelectTab(Convert.ToString(workingCharts[i].workingForm.Handle));
<a name="l00255"></a>00255                     Set_Check_menuItem_menuWindow();
<a name="l00256"></a>00256                 }
<a name="l00257"></a>00257             }
<a name="l00258"></a>00258 
<a name="l00259"></a>00259 
<a name="l00260"></a>00260         }
<a name="l00261"></a>00261 
<a name="l00262"></a>00262         <span class="keyword">private</span> <span class="keywordtype">void</span> SearchModelsToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00263"></a>00263         {
<a name="l00264"></a>00264             <span class="keywordflow">if</span> (this.ActiveMdiChild != null)
<a name="l00265"></a>00265             {
<a name="l00266"></a>00266                 <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l00267"></a>00267                 <span class="keywordflow">if</span> (i != -1)
<a name="l00268"></a>00268                 {
<a name="l00269"></a>00269                     <span class="keywordflow">if</span> (workingCharts[i].flagSerch)
<a name="l00270"></a>00270                     {
<a name="l00271"></a>00271                         <span class="keywordflow">if</span> (workingCharts[i].bgWorker != null &amp;&amp; workingCharts[i].bgWorker.IsBusy)
<a name="l00272"></a>00272                         {
<a name="l00273"></a>00273                             Set_Switch_Search_models();
<a name="l00274"></a>00274                             workingCharts[i].Stop_Search();
<a name="l00275"></a>00275                         }
<a name="l00276"></a>00276                     }
<a name="l00277"></a>00277                     <span class="keywordflow">else</span>
<a name="l00278"></a>00278                     {
<a name="l00279"></a>00279                         <span class="comment">// Расчет моделей</span>
<a name="l00280"></a>00280                         Set_Switch_Stop_Search();
<a name="l00281"></a>00281                         workingCharts[i].SearchModel2(<span class="keyword">true</span>, <span class="keyword">true</span>);
<a name="l00282"></a>00282                     }
<a name="l00283"></a>00283                 }
<a name="l00284"></a>00284             }
<a name="l00285"></a>00285 
<a name="l00286"></a>00286         }
<a name="l00287"></a>00287 
<a name="l00288"></a><a class="code" href="class_skilful_1_1_main_form.html#af1753d91f719139b807ccbaae01db1d0">00288</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#af1753d91f719139b807ccbaae01db1d0">workingChart_Button_Search_Complete_</a>()
<a name="l00289"></a>00289         {
<a name="l00290"></a>00290             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l00291"></a>00291 
<a name="l00292"></a>00292             Set_Switch_Search_Complete();
<a name="l00293"></a>00293             <span class="keywordflow">if</span> (i != -1)
<a name="l00294"></a>00294                 <span class="keywordflow">if</span> (!workingCharts[i].flagSerch)
<a name="l00295"></a>00295                     Set_Switch_Search_models();
<a name="l00296"></a>00296         }
<a name="l00297"></a>00297 
<a name="l00298"></a>00298         <span class="keyword">private</span> <span class="keywordtype">void</span> exitToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00299"></a>00299         {
<a name="l00300"></a>00300             this.Close();
<a name="l00301"></a>00301         }
<a name="l00302"></a>00302 
<a name="l00303"></a>00303 
<a name="l00304"></a>00304         <span class="keyword">private</span> <span class="keywordtype">void</span> MainForm_Shown(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00305"></a>00305         {
<a name="l00306"></a>00306             <span class="keywordflow">try</span>
<a name="l00307"></a>00307             {
<a name="l00308"></a>00308                 <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;AgreedWithGPL&quot;</span>).Length == 0) <span class="keyword">new</span> Splash().ShowDialog();
<a name="l00309"></a>00309 
<a name="l00310"></a>00310                 <span class="comment">// Загрузка настроек</span>
<a name="l00311"></a>00311                 <span class="comment">// MT4 proxy init</span>
<a name="l00312"></a>00312                 <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;MT4Path&quot;</span>).Length &lt; 2) <span class="comment">//необходимо ли проверять каждый раз поменялся ли МТ4 у клиента?</span>
<a name="l00313"></a>00313                 <span class="comment">//if (Properties.Settings.Default.MT4Path.Length &lt; 2) //необходимо ли проверять каждый раз поменялся ли МТ4 у клиента?</span>
<a name="l00314"></a>00314                 {
<a name="l00315"></a>00315                     <span class="keyword">const</span> <span class="keywordtype">string</span> mt4registry = <span class="stringliteral">&quot;Software\\MetaQuotes Software\\MetaTrader 4&quot;</span>;
<a name="l00316"></a>00316                     RegistryKey key = Registry.CurrentUser.OpenSubKey(mt4registry);
<a name="l00317"></a>00317                     <span class="keywordflow">if</span> (key != null)
<a name="l00318"></a>00318                     {
<a name="l00319"></a>00319                         <span class="keywordtype">string</span> mt4path = (string)key.GetValue(<span class="stringliteral">&quot;InstallPath&quot;</span>);
<a name="l00320"></a>00320                         <span class="keywordflow">if</span> (mt4path != null) XMLConfig.Set(<span class="stringliteral">&quot;MT4Path&quot;</span>, mt4path);
<a name="l00321"></a>00321                     }
<a name="l00322"></a>00322                 }
<a name="l00323"></a>00323                 <span class="comment">//DataManager.DataSource[&quot;MT4&quot;].StoragePath = mt4.StoragePath();</span>
<a name="l00324"></a>00324                 <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a51fc2343dc328bedc7bebbf2f88326ab">WriteWndHandle</a>((<span class="keywordtype">int</span>)this.Handle);
<a name="l00325"></a>00325                 <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a3588b6e2a02b1b9a9aab844d03f5d404">mt4init</a>();
<a name="l00326"></a>00326                 <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#ae71bed34cc2b0a3aab2f9e9502993fc0">getDigits</a>();
<a name="l00327"></a>00327 
<a name="l00328"></a>00328                 checkWindowMenuDropChart = windowStripMenuItem.DropDownItems.Count - 1;
<a name="l00329"></a>00329             }
<a name="l00330"></a>00330 
<a name="l00331"></a>00331             <span class="keywordflow">catch</span> (Exception ex)
<a name="l00332"></a>00332             {
<a name="l00333"></a>00333                 MessageBox.Show(ex.Message);
<a name="l00334"></a>00334             }
<a name="l00335"></a>00335             <span class="comment">// Заполняется меню File--&gt;Sample--&gt; и Remove Sample имеющимися samples </span>
<a name="l00336"></a>00336 
<a name="l00337"></a>00337                <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;CurrentSample&quot;</span>).Length != 0)
<a name="l00338"></a>00338                {
<a name="l00339"></a>00339                 Sample.currentSample = XMLConfig.Get(<span class="stringliteral">&quot;CurrentSample&quot;</span>);
<a name="l00340"></a>00340                 SetSample(Application.StartupPath + <span class="stringliteral">&quot;\\&quot;</span> + Sample.currentSample + <span class="stringliteral">&quot;.smp&quot;</span>);
<a name="l00341"></a>00341                 }
<a name="l00342"></a>00342                 DirectoryInfo dir = <span class="keyword">new</span> DirectoryInfo(Application.StartupPath);
<a name="l00343"></a>00343                 FileInfo[] filesSample = dir.GetFiles(<span class="stringliteral">&quot;*.smp&quot;</span>);
<a name="l00344"></a>00344                 <span class="keywordtype">string</span> SampleName;
<a name="l00345"></a>00345                 <span class="keywordflow">if</span> (filesSample != null)
<a name="l00346"></a>00346                     <span class="keywordflow">foreach</span> (FileInfo fi <span class="keywordflow">in</span> filesSample)
<a name="l00347"></a>00347                     {
<a name="l00348"></a>00348                         SampleName = fi.Name.Substring(0, fi.Name.LastIndexOf(<span class="charliteral">&#39;.&#39;</span>));
<a name="l00349"></a>00349                         Add_menuItem_menuSample(SampleName, <span class="keyword">true</span>);
<a name="l00350"></a>00350                         Add_menuItem_menuSample(SampleName, <span class="keyword">false</span>);
<a name="l00351"></a>00351                     }
<a name="l00352"></a>00352               
<a name="l00353"></a>00353                 <span class="keywordflow">if</span> (Sample.currentSample != <span class="stringliteral">&quot;Default&quot;</span>) toolStripMenuDefault.Checked = <span class="keyword">false</span>;
<a name="l00354"></a>00354                       
<a name="l00355"></a>00355             
<a name="l00356"></a>00356            
<a name="l00357"></a>00357            <span class="comment">//--------------------------------------------</span>
<a name="l00358"></a>00358                                   
<a name="l00359"></a>00359             <span class="keywordtype">string</span> mbic = XMLConfig.Get(<span class="stringliteral">&quot;MaxBarInChart&quot;</span>);
<a name="l00360"></a>00360             <span class="keywordflow">if</span> (mbic.Length != 0)
<a name="l00361"></a>00361             {
<a name="l00362"></a>00362                 toolStripComboBoxMBiC.Text = mbic;
<a name="l00363"></a>00363                 ChartV2.Data.ViewPort.maxBarInChart = Convert.ToInt32(mbic);
<a name="l00364"></a>00364             }
<a name="l00365"></a>00365             <span class="keywordflow">else</span>
<a name="l00366"></a>00366             {
<a name="l00367"></a>00367                 ChartV2.Data.ViewPort.maxBarInChart = 150;
<a name="l00368"></a>00368                 toolStripComboBoxMBiC.Text = <span class="stringliteral">&quot;150&quot;</span>;
<a name="l00369"></a>00369             }
<a name="l00370"></a>00370 
<a name="l00371"></a>00371             <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;ShowHypotheticalTarget&quot;</span>) == <span class="stringliteral">&quot;False&quot;</span>)
<a name="l00372"></a>00372             { toolStripMenuItemSHT.Checked = <span class="keyword">false</span>; <a class="code" href="class_skilful_1_1_main_form.html#a05cfd725c1ccecf8b443cfdf793804fc">ShowHypotheticalTarget</a> = <span class="keyword">false</span>; }
<a name="l00373"></a>00373 
<a name="l00374"></a>00374             <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;ShowIndexCheckedModel&quot;</span>) == <span class="stringliteral">&quot;False&quot;</span>)
<a name="l00375"></a>00375             { toolStripMenuItemSICM.Checked = <span class="keyword">false</span>; <a class="code" href="class_skilful_1_1_main_form.html#a8e7b08df82dbf48017f247408aff8865">ShowIndexCheckedModel</a> = <span class="keyword">false</span>; }
<a name="l00376"></a>00376 
<a name="l00377"></a>00377             <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;ShowSourceName&quot;</span>) == <span class="stringliteral">&quot;False&quot;</span>)
<a name="l00378"></a>00378             { toolStripMenuItemSDSN.Checked = <span class="keyword">false</span>; <a class="code" href="class_skilful_1_1_main_form.html#a0f485248512a37edd4503375da1f8e82">ShowSourceName</a> = <span class="keyword">false</span>; }
<a name="l00379"></a>00379 
<a name="l00380"></a>00380             <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;LoadLastSession&quot;</span>) == <span class="stringliteral">&quot;False&quot;</span>)
<a name="l00381"></a>00381                 toolStripMenuItemLLS.Checked = <span class="keyword">false</span>;
<a name="l00382"></a>00382             <span class="keywordflow">else</span> Load_In();
<a name="l00383"></a>00383 
<a name="l00384"></a>00384         }
<a name="l00385"></a>00385 
<a name="l00386"></a>00386         <span class="keyword">private</span> <span class="keywordtype">void</span> closeStripMenuItem3_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00387"></a>00387         {
<a name="l00388"></a>00388             <span class="keywordflow">if</span> (this.ActiveMdiChild != null)
<a name="l00389"></a>00389             {
<a name="l00390"></a>00390                 <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l00391"></a>00391                 Remove_menuItem_menuWindow(workingCharts[i].workingForm.Handle);
<a name="l00392"></a>00392                 Remove_TabItem_tabControl(workingCharts[i].workingForm.Handle);
<a name="l00393"></a>00393                 <span class="keywordflow">if</span> (workingCharts[i].bgWorker != null &amp;&amp; workingCharts[i].bgWorker.IsBusy) workingCharts[i].Stop_Search();
<a name="l00394"></a>00394                 workingCharts.RemoveAt(i);
<a name="l00395"></a>00395                 (this.ActiveMdiChild).<a class="code" href="class_skilful_1_1_main_form.html#aafe87d49773de5a821387eec50a38818" title="Clean up any resources being used.">Dispose</a>();
<a name="l00396"></a>00396             }
<a name="l00397"></a>00397         }
<a name="l00398"></a>00398 
<a name="l00399"></a>00399         <span class="keyword">private</span> <span class="keywordtype">void</span> closeAllStripMenuItem3_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00400"></a>00400         {
<a name="l00401"></a>00401             <span class="keywordflow">if</span> (MessageBox.Show(<span class="stringliteral">&quot;All Charts will be closed.&quot;</span>, <span class="stringliteral">&quot;Warning.&quot;</span>, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel) <span class="keywordflow">return</span>;
<a name="l00402"></a>00402             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l00403"></a>00403             <span class="keywordflow">while</span> (i != -1)
<a name="l00404"></a>00404             {
<a name="l00405"></a>00405                 Remove_menuItem_menuWindow(workingCharts[i].workingForm.Handle);
<a name="l00406"></a>00406                 Remove_TabItem_tabControl(workingCharts[i].workingForm.Handle);
<a name="l00407"></a>00407                 <span class="keywordflow">if</span> (workingCharts[i].bgWorker != null &amp;&amp; workingCharts[i].bgWorker.IsBusy) workingCharts[i].Stop_Search();
<a name="l00408"></a>00408                 workingCharts.RemoveAt(i);
<a name="l00409"></a>00409                 (this.ActiveMdiChild).<a class="code" href="class_skilful_1_1_main_form.html#aafe87d49773de5a821387eec50a38818" title="Clean up any resources being used.">Dispose</a>();
<a name="l00410"></a>00410                 i = Get_Index_Current_workingChart();
<a name="l00411"></a>00411             }
<a name="l00412"></a>00412         }
<a name="l00413"></a>00413 
<a name="l00414"></a>00414 
<a name="l00415"></a>00415         <span class="keyword">private</span> <span class="keywordtype">void</span> aboutToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00416"></a>00416         {
<a name="l00417"></a>00417             About about = <span class="keyword">new</span> About();
<a name="l00418"></a>00418             about.Show();
<a name="l00419"></a>00419         }
<a name="l00420"></a>00420 
<a name="l00421"></a>00421 
<a name="l00422"></a>00422         <span class="keyword">private</span> <span class="keywordtype">void</span> cascadetoolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00423"></a>00423         {
<a name="l00424"></a>00424             LayoutMdi(MdiLayout.Cascade);
<a name="l00425"></a>00425 
<a name="l00426"></a>00426         }
<a name="l00427"></a>00427         <span class="keyword">private</span> <span class="keywordtype">void</span> verticaltoolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00428"></a>00428         {
<a name="l00429"></a>00429             LayoutMdi(MdiLayout.TileVertical);
<a name="l00430"></a>00430         }
<a name="l00431"></a>00431 
<a name="l00432"></a>00432         <span class="keyword">private</span> <span class="keywordtype">void</span> horizontaltoolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00433"></a>00433         {
<a name="l00434"></a>00434             LayoutMdi(MdiLayout.TileHorizontal);
<a name="l00435"></a>00435         }
<a name="l00436"></a>00436 
<a name="l00437"></a>00437         <span class="keyword">private</span> <span class="keywordtype">void</span> OptionsMnu_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00438"></a>00438         {
<a name="l00439"></a>00439             <span class="comment">//Form OptionsForm = new OptionsForm();</span>
<a name="l00440"></a>00440             <span class="comment">//OptionsForm.ShowDialog();</span>
<a name="l00441"></a>00441         }
<a name="l00442"></a>00442         <span class="keyword">private</span> <span class="keywordtype">void</span> Save_Out_SymbolTreeView()
<a name="l00443"></a>00443         {
<a name="l00444"></a>00444             <span class="comment">//SymbolTreeView</span>
<a name="l00445"></a>00445             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes.Count; i++)
<a name="l00446"></a>00446             {
<a name="l00447"></a>00447                 Save save = <span class="keyword">new</span> Save();
<a name="l00448"></a>00448                 save.SymbolTreeView_Node = (int)<a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes[i].Tag + 100; <span class="comment">//index</span>
<a name="l00449"></a>00449                 save.SymbolTreeView_Node_expanded = <a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes[i].IsExpanded;
<a name="l00450"></a>00450                 save.SymbolTreeView_Width = toolStripContainerSymbolTree.Width;
<a name="l00451"></a>00451                 <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>.Add(save);
<a name="l00452"></a>00452             }
<a name="l00453"></a>00453         }
<a name="l00454"></a>00454         <span class="keyword">private</span> <span class="keywordtype">void</span> Save_Out(<span class="keywordtype">int</span> i)
<a name="l00455"></a>00455         {
<a name="l00456"></a>00456 
<a name="l00457"></a>00457             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; workingCharts.Count; j++)
<a name="l00458"></a>00458             {
<a name="l00459"></a>00459                 Save save = <span class="keyword">new</span> Save(workingCharts[j].workingForm);
<a name="l00460"></a>00460                 save.Current_workingChart = <span class="keyword">false</span>;
<a name="l00461"></a>00461                 <span class="keywordflow">if</span> (j == i) save.Current_workingChart = <span class="keyword">true</span>;
<a name="l00462"></a>00462 
<a name="l00463"></a>00463                 save.Current_Active_Chart_TF = workingCharts[j].tf;
<a name="l00464"></a>00464                 save.workingForm_Size = workingCharts[j].workingForm.Size;
<a name="l00465"></a>00465                 save.workingForm_Left = workingCharts[j].workingForm.Left;
<a name="l00466"></a>00466                 save.workingForm_Top = workingCharts[j].workingForm.Top;
<a name="l00467"></a>00467                 save.workingForm_WindowState = workingCharts[j].workingForm.WindowState;
<a name="l00468"></a>00468                 <span class="keywordflow">if</span> (workingCharts[j].tn != null)
<a name="l00469"></a>00469                 {
<a name="l00470"></a>00470                     save.workingForm_Node_Text = workingCharts[j].tn.Text;
<a name="l00471"></a>00471                     <span class="keywordflow">if</span> (workingCharts[j].tn.Level &gt; 0)
<a name="l00472"></a>00472                         save.workingForm_Node_Parent_Text = workingCharts[j].tn.Parent.Text;
<a name="l00473"></a>00473                 }
<a name="l00474"></a>00474 
<a name="l00475"></a>00475                 <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>.Add(save);
<a name="l00476"></a>00476             }
<a name="l00477"></a>00477         }
<a name="l00478"></a>00478         <span class="keyword">private</span> <span class="keywordtype">void</span> Load_In()
<a name="l00479"></a>00479         {
<a name="l00480"></a>00480             Load load = <span class="keyword">new</span> Load();
<a name="l00481"></a>00481             <span class="keywordtype">int</span> k = 0;
<a name="l00482"></a>00482             <span class="keywordflow">if</span> (File.Exists(Application.StartupPath + <span class="stringliteral">&quot;\\&quot;</span> + <span class="stringliteral">&quot;List.bin&quot;</span>))
<a name="l00483"></a>00483                 <span class="keywordflow">try</span>
<a name="l00484"></a>00484                 {
<a name="l00485"></a>00485                     BinaryFormatter formatter = <span class="keyword">new</span> BinaryFormatter();
<a name="l00486"></a>00486                     <span class="keyword">using</span> (Stream stream = File.Open(Application.StartupPath + <span class="stringliteral">&quot;\\&quot;</span> + <span class="stringliteral">&quot;List.bin&quot;</span>, FileMode.Open, FileAccess.Read))
<a name="l00487"></a>00487                     {
<a name="l00488"></a>00488                         <span class="keywordflow">if</span> (stream.Length == 0) <span class="keywordflow">return</span>;
<a name="l00489"></a>00489                         <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a> = (List&lt;Save&gt;)formatter.Deserialize(stream);
<a name="l00490"></a>00490                         stream.Close();
<a name="l00491"></a>00491                     }
<a name="l00492"></a>00492 
<a name="l00493"></a>00493                     ProgressBar pb = (ProgressBar)load.Controls[1];
<a name="l00494"></a>00494                     pb.Minimum = pb.Maximum = 0;
<a name="l00495"></a>00495                     for (<span class="keywordtype">int</span> x = 0; x &lt; <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>.Count - 1; x++)
<a name="l00496"></a>00496                         pb.Maximum = pb.Maximum + <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[x].Active_Chart_TF.Count;
<a name="l00497"></a>00497                     pb.Value = 0;
<a name="l00498"></a>00498                     load.TopMost = <span class="keyword">true</span>;
<a name="l00499"></a>00499 
<a name="l00500"></a>00500                     if ((<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>.Count - 1) != 0) load.Show();
<a name="l00501"></a>00501                     pb.Refresh();  <span class="comment">// ProgressBar</span>
<a name="l00502"></a>00502                     <span class="keywordtype">bool</span> toolStripContainerSymbolTree_Expanded = <span class="keyword">false</span>;
<a name="l00503"></a>00503                     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>.Count - 1; i++)
<a name="l00504"></a>00504                     {
<a name="l00505"></a>00505 
<a name="l00506"></a>00506                         <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].SymbolTreeView_Node &gt;= 100)
<a name="l00507"></a>00507                         {
<a name="l00508"></a>00508                             <span class="keywordtype">int</span> idx = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].SymbolTreeView_Node - 100;
<a name="l00509"></a>00509                             <span class="keywordflow">foreach</span> (TreeNode tn <span class="keywordflow">in</span> <a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes)
<a name="l00510"></a>00510                                 <span class="keywordflow">if</span> ((<span class="keywordtype">int</span>)tn.Tag == idx &amp;&amp; <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].SymbolTreeView_Node_expanded)
<a name="l00511"></a>00511                                     tn.Expand();
<a name="l00512"></a>00512                             <span class="keywordflow">if</span> (!toolStripContainerSymbolTree_Expanded)
<a name="l00513"></a>00513                             {
<a name="l00514"></a>00514                                 toolStripContainerSymbolTree.Width = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].SymbolTreeView_Width;
<a name="l00515"></a>00515                                 toolStripContainerSymbolTree_Expanded = <span class="keyword">true</span>;
<a name="l00516"></a>00516                                 label1.Visible = toolStripContainerSymbolTree.Width == 3;
<a name="l00517"></a>00517                                 label2.Visible = !label1.Visible;
<a name="l00518"></a>00518                             }
<a name="l00519"></a>00519                             <span class="keywordflow">continue</span>;
<a name="l00520"></a>00520                         }
<a name="l00521"></a>00521                         <span class="keywordflow">foreach</span> (TreeNode tn <span class="keywordflow">in</span> <a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes)
<a name="l00522"></a>00522                         {
<a name="l00523"></a>00523                             <span class="keywordflow">if</span> (tn.Text == <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_Node_Parent_Text)
<a name="l00524"></a>00524                             {
<a name="l00525"></a>00525                                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; tn.Nodes.Count; j++)
<a name="l00526"></a>00526                                 {
<a name="l00527"></a>00527 
<a name="l00528"></a>00528                                     <span class="keywordflow">if</span> (tn.Nodes[j].Text != <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_Node_Text) <span class="keywordflow">continue</span>;
<a name="l00529"></a>00529                                     <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Current_Active_Chart_TF, tn.Nodes[j]);
<a name="l00530"></a>00530                                     workingCharts[i].workingForm.Left = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_Left;
<a name="l00531"></a>00531                                     workingCharts[i].workingForm.Top = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_Top;
<a name="l00532"></a>00532                                     workingCharts[i].workingForm.Size = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_Size;
<a name="l00533"></a>00533 
<a name="l00534"></a>00534                                     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> n = 0; n &lt; <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Active_Chart_TF.Count; n++)
<a name="l00535"></a>00535                                     {
<a name="l00536"></a>00536                                         Label l = (Label)load.Controls[0]; <span class="comment">// Label</span>
<a name="l00537"></a>00537                                         l.Text = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_Node_Parent_Text + <span class="stringliteral">&quot;: &quot;</span> + <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_Node_Text + <span class="stringliteral">&quot; &quot;</span> + <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Active_Chart_TF[n].ToString();
<a name="l00538"></a>00538                                         l.Refresh();
<a name="l00539"></a>00539                                         pb.PerformStep();
<a name="l00540"></a>00540                                         pb.Refresh();
<a name="l00541"></a>00541                                         switchTFonActiveChart(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Active_Chart_TF[n]);
<a name="l00542"></a>00542                                         ChartV2.Control c = ActiveChart;
<a name="l00543"></a>00543                                  <span class="comment">//       c.plot.style.backColor = Save_parameters[i].Chart_backColor[n];</span>
<a name="l00544"></a>00544                                    <span class="comment">//     c.plot.grid.style.minorHorizontalPen = c.plot.grid.style.minorVerticalPen = new Pen(Save_parameters[i].Grid_Color[n]);</span>
<a name="l00545"></a>00545                                         c.<a class="code" href="class_chart_v2_1_1_control.html#aabbc2b56c0c55b0ecb7aae8dd0071379">plot</a>.grid.style.minorVerticalPen.DashPattern = <span class="keyword">new</span> <span class="keywordtype">float</span>[2] { c.plot.grid.style.minV1, c.plot.grid.style.minV2 };
<a name="l00546"></a>00546                                         c.plot.grid.style.minorHorizontalPen.DashPattern = <span class="keyword">new</span> <span class="keywordtype">float</span>[2] { c.plot.grid.style.minH1, c.plot.grid.style.minH2 };
<a name="l00547"></a>00547                                    <span class="comment">//     c.plot.grid.IsVisible = Save_parameters[i].Grid_IsVisible[n];</span>
<a name="l00548"></a>00548                                     <span class="comment">//    c.leftAxis.style.magorTickFont = Save_parameters[i].AxisStyleRight[n];</span>
<a name="l00549"></a>00549                                    <span class="comment">//     c.leftAxis.cursorLable.font = c.rightAxis.cursorLable.font = Sample.CursorLable_Left_Right;</span>
<a name="l00550"></a>00550                                    <span class="comment">//     c.gridSplitter.IsGridVisible = Save_parameters[i].GridSplitter_IsGridVisible[n];</span>
<a name="l00551"></a>00551 
<a name="l00552"></a>00552                                         <span class="keywordflow">if</span> (Skilful.Sample.ChartType_ == ChartV2.ChartType.Line)
<a name="l00553"></a>00553                                         {
<a name="l00554"></a>00554                                             workingCharts[i].SetChartType(ChartV2.ChartType.Line);
<a name="l00555"></a>00555                                             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a6a8265c844f9ef6548399bc9ea3d8d1e">Switch_charts_</a> += <span class="keyword">new</span> <a class="code" href="namespace_chart_v2.html#a125a51f817f70f74de68944d4e989fc2">Switch_charts</a>(ActiveChart_Switch_charts_);
<a name="l00556"></a>00556                                         }
<a name="l00557"></a>00557 
<a name="l00558"></a>00558                                         <span class="keywordflow">try</span>
<a name="l00559"></a>00559                                         { <span class="comment">//search models</span>
<a name="l00560"></a>00560                                             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_flagSerch.Count &lt;= n) MessageBox.Show(<span class="stringliteral">&quot;(Save_parameters[i].workingForm_flagSerch.Count &lt;= n)&quot;</span>);
<a name="l00561"></a>00561                                             <span class="keywordflow">if</span> ((<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].workingForm_flagSerch[n]) == <span class="keyword">true</span>)
<a name="l00562"></a>00562                                             {
<a name="l00563"></a>00563                                                 Set_Switch_Stop_Search();
<a name="l00564"></a>00564                                                 <span class="keywordflow">try</span>
<a name="l00565"></a>00565                                                 {
<a name="l00566"></a>00566                                                     <span class="keywordflow">if</span> (n == 0) workingCharts[i].SearchModel2(<span class="keyword">true</span>, <span class="keyword">false</span>);
<a name="l00567"></a>00567                                                 }
<a name="l00568"></a>00568                                                 <span class="keywordflow">catch</span> (Exception e)
<a name="l00569"></a>00569                                                 {
<a name="l00570"></a>00570                                                     MessageBox.Show(<span class="stringliteral">&quot;LoadIn::SearchModel2: &quot;</span> + e.Message);
<a name="l00571"></a>00571                                                 }
<a name="l00572"></a>00572                                                 <a class="code" href="class_skilful_1_1_main_form.html#af1753d91f719139b807ccbaae01db1d0">workingChart_Button_Search_Complete_</a>();
<a name="l00573"></a>00573                                                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Chart_selectedModelIndexes.Count &lt;= n) MessageBox.Show(<span class="stringliteral">&quot;(Save_parameters[i].Chart_selectedModelIndexes.Count &lt;= n)&quot;</span>);
<a name="l00574"></a>00574                                                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Chart_selectedModelIndexes[n][0] == -1) <span class="keywordflow">continue</span>;
<a name="l00575"></a>00575                                                 c.c_smi(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Chart_selectedModelIndexes[n]);
<a name="l00576"></a>00576                                                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> a = 0; a &lt; <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Chart_selectedModelIndexes[n].Length
<a name="l00577"></a>00577                                                              &amp;&amp; a &lt; ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#aabbc2b56c0c55b0ecb7aae8dd0071379">plot</a>.modelsToDrawList.Count; a++)
<a name="l00578"></a>00578                                                 {
<a name="l00579"></a>00579                                                     <span class="keywordtype">int</span> d = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Chart_selectedModelIndexes[n][a];
<a name="l00580"></a>00580 
<a name="l00581"></a>00581                                                     <span class="keywordflow">if</span> (ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#aabbc2b56c0c55b0ecb7aae8dd0071379">plot</a>.modelsToDrawList.Count &lt;= d)
<a name="l00582"></a>00582                                                         <span class="keywordflow">break</span>;
<a name="l00583"></a>00583                                                     <span class="comment">//MessageBox.Show(&quot;(ActiveChart.plot.modelsToDrawList.Count &lt;= n)&quot;);</span>
<a name="l00584"></a>00584 
<a name="l00585"></a>00585 
<a name="l00586"></a>00586                                                     ChartV2.Model model = ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#aabbc2b56c0c55b0ecb7aae8dd0071379">plot</a>.modelsToDrawList[d];
<a name="l00587"></a>00587                                                     model.IsSelected = <span class="keyword">true</span>;
<a name="l00588"></a>00588                                                     <span class="keywordflow">if</span> (model.HTi &gt;= 0) ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#aabbc2b56c0c55b0ecb7aae8dd0071379">plot</a>.HTtoDrawList[model.HTi].SelectedCount++;
<a name="l00589"></a>00589 
<a name="l00590"></a>00590                                                     <span class="keywordflow">try</span>
<a name="l00591"></a>00591                                                     { <span class="comment">//draw target label</span>
<a name="l00592"></a>00592                                                         <span class="keywordflow">if</span> (model.type != <a class="code" href="namespace_chart_v2.html#ad32c7a3681414adea76a8836845216da">ModelType</a>.ATR)
<a name="l00593"></a>00593                                                         {
<a name="l00594"></a>00594                                                             <span class="keywordflow">if</span> ((!model.ModelPoint[5].IsEmpty) &amp;&amp; (model.ModelPoint[5].X != model.ModelPointReal[6].X))
<a name="l00595"></a>00595                                                             {
<a name="l00596"></a>00596                                                                 c.tempTargetLable = <span class="keyword">new</span> ChartV2.Axis_Plot.CursorInfoLable();
<a name="l00597"></a>00597                                                                 c.tempTargetLable.IsVisible = <span class="keyword">true</span>;
<a name="l00598"></a>00598                                                                 c.rightAxis.IsTargetsVisible = <span class="keyword">true</span>;
<a name="l00599"></a>00599                                                                 c.tempTargetLable.Value = model.ModelPoint[5].Y;
<a name="l00600"></a>00600                                                                 c.tempTargetLable.rect.Y = c.plot.seriesToDrawList[0].viewPort.PriceToPixels(c.tempTargetLable.Value);
<a name="l00601"></a>00601                                                                 c.rightAxis.targetLable.Add(d, c.tempTargetLable);
<a name="l00602"></a>00602 
<a name="l00603"></a>00603                                                             }
<a name="l00604"></a>00604                                                         }
<a name="l00605"></a>00605                                                         <span class="keywordflow">else</span>
<a name="l00606"></a>00606                                                         {
<a name="l00607"></a>00607                                                             c.tempTargetLable = <span class="keyword">new</span> ChartV2.Axis_Plot.CursorInfoLable();
<a name="l00608"></a>00608                                                             c.tempTargetLable.IsVisible = <span class="keyword">true</span>;
<a name="l00609"></a>00609                                                             c.rightAxis.IsTargetsVisible = <span class="keyword">true</span>;
<a name="l00610"></a>00610                                                             c.tempTargetLable.Value = model.PointsForDrawing_1_3[1].Y;
<a name="l00611"></a>00611                                                             c.rightAxis.targetLable.Add(d, c.tempTargetLable);
<a name="l00612"></a>00612 
<a name="l00613"></a>00613                                                         }
<a name="l00614"></a>00614                                                     }
<a name="l00615"></a>00615                                                     <span class="keywordflow">catch</span> (Exception e)
<a name="l00616"></a>00616                                                     {
<a name="l00617"></a>00617                                                         MessageBox.Show(<span class="stringliteral">&quot;LoadIn:://draw target label: &quot;</span> + e.Message);
<a name="l00618"></a>00618                                                     }
<a name="l00619"></a>00619                                                 }
<a name="l00620"></a>00620 
<a name="l00621"></a>00621                                             }
<a name="l00622"></a>00622                                         }
<a name="l00623"></a>00623                                         <span class="keywordflow">catch</span> (Exception e)
<a name="l00624"></a>00624                                         {
<a name="l00625"></a>00625                                             MessageBox.Show(<span class="stringliteral">&quot;LoadIn:://search models: &quot;</span> + e.Message);
<a name="l00626"></a>00626                                         }
<a name="l00627"></a>00627 
<a name="l00628"></a>00628                                         <span class="keywordflow">try</span>
<a name="l00629"></a>00629                                         { <span class="comment">//draw user graphic elements</span>
<a name="l00630"></a>00630                                             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse.Count != 0)
<a name="l00631"></a>00631                                             {
<a name="l00632"></a>00632                                                 c.plot.graphToolsToDrawList = <span class="keyword">new</span> List&lt;UserLine&gt;();
<a name="l00633"></a>00633                                                 <span class="keywordflow">foreach</span> (Grafic_elements d <span class="keywordflow">in</span> <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse)
<a name="l00634"></a>00634                                                 {
<a name="l00635"></a>00635                                                     <span class="keywordtype">int</span> dd = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse.IndexOf(d);
<a name="l00636"></a>00636                                                     <span class="keywordflow">switch</span> (d.dt)
<a name="l00637"></a>00637                                                     {
<a name="l00638"></a>00638                                                         <span class="keywordflow">case</span> <a class="code" href="namespace_chart_v2.html#a3016ec0960f22b0b8806b6cab3839e48">DrawingTool</a>.HorizontalLine:
<a name="l00639"></a>00639                                                             c.plot.graphToolsToDrawList.Add(<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_data_1_1_horizontal_line.html">HorizontalLine</a>(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf1, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf2, (<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_styles_1_1_user_line_style.html">UserLineStyle</a>(<span class="keyword">new</span> Pen(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].penstr)))));
<a name="l00640"></a>00640                                                             <span class="keywordflow">break</span>;
<a name="l00641"></a>00641                                                         <span class="keywordflow">case</span> <a class="code" href="namespace_chart_v2.html#a3016ec0960f22b0b8806b6cab3839e48">DrawingTool</a>.VerticalLine:
<a name="l00642"></a>00642                                                             c.plot.graphToolsToDrawList.Add(<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_data_1_1_vertical_line.html">VerticalLine</a>(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].IntPt1, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].IntPt2, (<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_styles_1_1_user_line_style.html">UserLineStyle</a>(<span class="keyword">new</span> Pen(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].penstr)))));
<a name="l00643"></a>00643                                                             <span class="keywordflow">break</span>;
<a name="l00644"></a>00644                                                         <span class="keywordflow">case</span> <a class="code" href="namespace_chart_v2.html#a3016ec0960f22b0b8806b6cab3839e48">DrawingTool</a>.FreeLine:
<a name="l00645"></a>00645                                                             c.plot.graphToolsToDrawList.Add(<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_data_1_1_angular_line.html">AngularLine</a>(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf1, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf2, (<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_styles_1_1_user_line_style.html">UserLineStyle</a>(<span class="keyword">new</span> Pen(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].penstr))), <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].Ext));
<a name="l00646"></a>00646                                                             <span class="keywordflow">break</span>;
<a name="l00647"></a>00647                                                         <span class="keywordflow">case</span> <a class="code" href="namespace_chart_v2.html#a3016ec0960f22b0b8806b6cab3839e48">DrawingTool</a>.Cycles:
<a name="l00648"></a>00648                                                             c.plot.graphToolsToDrawList.Add(<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_data_1_1_cycles.html">Cycles</a>(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf1, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf2, (<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_styles_1_1_user_line_style.html">UserLineStyle</a>(<span class="keyword">new</span> Pen(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].penstr)))));
<a name="l00649"></a>00649                                                             <span class="keywordflow">break</span>;
<a name="l00650"></a>00650                                                         <span class="keywordflow">case</span> <a class="code" href="namespace_chart_v2.html#a3016ec0960f22b0b8806b6cab3839e48">DrawingTool</a>.Circle:
<a name="l00651"></a>00651                                                             c.plot.graphToolsToDrawList.Add(<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_data_1_1_circle.html">Circle</a>(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf1, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf2, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf3, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf4, <span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_styles_1_1_user_line_style.html">UserLineStyle</a>(<span class="keyword">new</span> Pen(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].penstr))));
<a name="l00652"></a>00652                                                             <span class="keywordflow">break</span>;
<a name="l00653"></a>00653                                                         <span class="keywordflow">case</span> <a class="code" href="namespace_chart_v2.html#a3016ec0960f22b0b8806b6cab3839e48">DrawingTool</a>.Arc:
<a name="l00654"></a>00654                                                             c.plot.graphToolsToDrawList.Add(<span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_data_1_1_arch.html">Arch</a>(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf1, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf2, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf3, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].pf4, <span class="keyword">new</span> <a class="code" href="class_chart_v2_1_1_styles_1_1_user_line_style.html">UserLineStyle</a>(<span class="keyword">new</span> Pen(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].lse[dd].penstr))));
<a name="l00655"></a>00655                                                             <span class="keywordflow">break</span>;
<a name="l00656"></a>00656                                                     }
<a name="l00657"></a>00657                                                 }
<a name="l00658"></a>00658                                                 <span class="keywordflow">foreach</span> (<a class="code" href="class_chart_v2_1_1_data_1_1_user_line.html">UserLine</a> d <span class="keywordflow">in</span> c.plot.graphToolsToDrawList)
<a name="l00659"></a>00659                                                     d.<a class="code" href="class_chart_v2_1_1_data_1_1_user_line.html#a5d321f62e15def1db46395fa553b095c">IsVisible</a> = <span class="keyword">true</span>;
<a name="l00660"></a>00660                                             }
<a name="l00661"></a>00661                                         }
<a name="l00662"></a>00662                                         <span class="keywordflow">catch</span> (Exception e)
<a name="l00663"></a>00663                                         {
<a name="l00664"></a>00664                                             MessageBox.Show(<span class="stringliteral">&quot;LoadIn:://draw user graphic elements: &quot;</span> + e.Message);
<a name="l00665"></a>00665                                         }
<a name="l00666"></a>00666                                         c.ReDrawEveryThing(<span class="keyword">true</span>);
<a name="l00667"></a>00667 
<a name="l00668"></a>00668                                     }
<a name="l00669"></a>00669                                     switchTFonActiveChart(<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Current_Active_Chart_TF);
<a name="l00670"></a>00670 
<a name="l00671"></a>00671                                 }
<a name="l00672"></a>00672                             }
<a name="l00673"></a>00673                         }
<a name="l00674"></a>00674 
<a name="l00675"></a>00675                         <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[i].Current_workingChart) k = i;
<a name="l00676"></a>00676 
<a name="l00677"></a>00677                     }
<a name="l00678"></a>00678 
<a name="l00679"></a>00679                     <span class="keywordflow">if</span> (k &gt;= workingCharts.Count) k = workingCharts.Count - 1;
<a name="l00680"></a>00680                     <span class="keywordflow">if</span> (k &gt;= 0)
<a name="l00681"></a>00681                     {
<a name="l00682"></a>00682                         workingCharts[k].workingForm.Focus();
<a name="l00683"></a>00683                         workingCharts[k].workingForm.Refresh();
<a name="l00684"></a>00684                         workingCharts[k].workingForm.WindowState = <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>[k].workingForm_WindowState;
<a name="l00685"></a>00685                     }
<a name="l00686"></a>00686 
<a name="l00687"></a>00687                 }
<a name="l00688"></a>00688 
<a name="l00689"></a>00689                 <span class="keywordflow">catch</span> (Exception e)
<a name="l00690"></a>00690                 {
<a name="l00691"></a>00691                     MessageBox.Show(<span class="stringliteral">&quot;Load_In exception: &quot;</span> + e.Message);
<a name="l00692"></a>00692                 }
<a name="l00693"></a>00693 
<a name="l00694"></a>00694             load.TopMost = <span class="keyword">false</span>;
<a name="l00695"></a>00695             load.MdiParent = <span class="keyword">this</span>;
<a name="l00696"></a>00696             load.Dispose();
<a name="l00697"></a>00697 
<a name="l00698"></a>00698 
<a name="l00699"></a>00699 
<a name="l00700"></a>00700         }
<a name="l00701"></a>00701 
<a name="l00702"></a>00702         <span class="keyword">private</span> <span class="keywordtype">void</span> MainForm_FormClosed(<span class="keywordtype">object</span> sender, FormClosedEventArgs e)
<a name="l00703"></a>00703         {
<a name="l00704"></a>00704             <span class="comment">//Properties.Settings.Default.Save();// вроде и без этой строчки сохраняет</span>
<a name="l00705"></a>00705             Save_Out_SymbolTreeView();
<a name="l00706"></a>00706             <span class="comment">// Если Хелп запущен, - закрываем его</span>
<a name="l00707"></a>00707             <span class="keywordflow">if</span> (eventHelp_) help.Kill();
<a name="l00708"></a>00708             BinaryFormatter formatter = <span class="keyword">new</span> BinaryFormatter();
<a name="l00709"></a>00709             <span class="keyword">using</span> (Stream stream = File.Create(Application.StartupPath + <span class="stringliteral">&quot;\\&quot;</span> + <span class="stringliteral">&quot;List.bin&quot;</span>))
<a name="l00710"></a>00710             {
<a name="l00711"></a>00711                 formatter.Serialize(stream, <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>);
<a name="l00712"></a>00712                 stream.Close();
<a name="l00713"></a>00713             }
<a name="l00714"></a>00714         }
<a name="l00715"></a>00715 
<a name="l00716"></a>00716         <span class="comment">//--- symbol list methods -----------------------------------------//</span>
<a name="l00717"></a><a class="code" href="class_skilful_1_1_main_form.html#a2e3b4634d8037e8c704e4ec60a15c3ed">00717</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#a2e3b4634d8037e8c704e4ec60a15c3ed">ClearSymList</a>()
<a name="l00718"></a>00718         {
<a name="l00719"></a>00719             SuspendLayout();
<a name="l00720"></a>00720             <a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes.Clear();
<a name="l00721"></a>00721             ResumeLayout(<span class="keyword">false</span>);
<a name="l00722"></a>00722         }
<a name="l00723"></a>00723 
<a name="l00724"></a>00724         <span class="comment">//--- fill treeNode by symbols ------------------------------------//</span>
<a name="l00725"></a><a class="code" href="class_skilful_1_1_main_form.html#aea2780e1ac77313b236a0983da95f1a3">00725</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#aea2780e1ac77313b236a0983da95f1a3">AddSymList</a>(<span class="keywordtype">int</span> i, <span class="keywordtype">string</span> ModuleName, <span class="keywordtype">string</span>[] symlist)
<a name="l00726"></a>00726         {
<a name="l00727"></a>00727             SuspendLayout();
<a name="l00728"></a>00728             TreeNode tn = <span class="keyword">new</span> TreeNode(ModuleName);
<a name="l00729"></a>00729             tn.Tag = i; <span class="comment">//index in Modulelist (top level node)</span>
<a name="l00730"></a>00730             <span class="keywordflow">foreach</span> (<span class="keywordtype">string</span> sym <span class="keywordflow">in</span> symlist)
<a name="l00731"></a>00731             {
<a name="l00732"></a>00732                 tn.Nodes.Add(<span class="keyword">new</span> TreeNode(sym));
<a name="l00733"></a>00733             }
<a name="l00734"></a>00734             <a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes.Add(tn);
<a name="l00735"></a>00735             ResumeLayout(<span class="keyword">false</span>);
<a name="l00736"></a>00736         }
<a name="l00737"></a>00737 
<a name="l00738"></a>00738         <span class="comment">//--- check for the symbol exist in the symbol`s tree</span>
<a name="l00739"></a>00739         <span class="keywordtype">bool</span> SymbolExist(<span class="keywordtype">string</span> ModuleName, <span class="keywordtype">string</span> SymbolName)
<a name="l00740"></a>00740         {
<a name="l00741"></a>00741             <span class="comment">//ModuleName += &quot;:&quot;;</span>
<a name="l00742"></a>00742             <span class="keywordflow">foreach</span> (TreeNode tn <span class="keywordflow">in</span> <a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes)
<a name="l00743"></a>00743                 <span class="keywordflow">if</span> (tn.Text == ModuleName)
<a name="l00744"></a>00744                     <span class="keywordflow">foreach</span> (TreeNode sym <span class="keywordflow">in</span> tn.Nodes)
<a name="l00745"></a>00745                         <span class="keywordflow">if</span> (sym.Text == SymbolName)
<a name="l00746"></a>00746                             <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00747"></a>00747             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00748"></a>00748         }
<a name="l00749"></a>00749 
<a name="l00750"></a>00750         <span class="comment">//--- Refresh treeNode`s symbol list for given Module ---------------//</span>
<a name="l00751"></a><a class="code" href="class_skilful_1_1_main_form.html#a2b92318852be50fc52e5cd3b660444c7">00751</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#a2b92318852be50fc52e5cd3b660444c7">RefreshSymList</a>(<span class="keywordtype">string</span> ModuleName)
<a name="l00752"></a>00752         {
<a name="l00753"></a>00753             <span class="keywordflow">if</span> (!(<a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#addcc20e5aced7933be882305a4f7a291">Config</a>.ContainsKey(ModuleName))) <span class="keywordflow">return</span>;
<a name="l00754"></a>00754             <a class="code" href="class_skilful_1_1_data_1_1_data_sourse_module.html">DataSourseModule</a> ds = <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#ac62fcb90b148661c02f211b01fe5feeb">DataSource</a>[ModuleName];
<a name="l00755"></a>00755             <span class="keywordflow">if</span> (ds == null) <span class="keywordflow">return</span>;
<a name="l00756"></a>00756 
<a name="l00757"></a>00757             <span class="keywordtype">string</span>[] symlist = ds.<a class="code" href="class_skilful_1_1_data_1_1_data_sourse_module.html#a379dbef482514a88ee2b63e76f0a8e8c" title="возвращает список доступных инструментов.">get_symbol_list</a>(<a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#addcc20e5aced7933be882305a4f7a291">Config</a>[ModuleName][<span class="stringliteral">&quot;prompt&quot;</span>]<span class="comment">/*ds.prompt*/</span>);
<a name="l00758"></a>00758 
<a name="l00759"></a>00759             TreeNode tn = null;
<a name="l00760"></a>00760             <span class="keywordflow">foreach</span> (TreeNode tn_ <span class="keywordflow">in</span> <a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes)
<a name="l00761"></a>00761             {
<a name="l00762"></a>00762                 <span class="keywordflow">if</span> (tn_.Text == ModuleName)
<a name="l00763"></a>00763                 {
<a name="l00764"></a>00764                     tn = tn_;
<a name="l00765"></a>00765                     <span class="keywordflow">break</span>;
<a name="l00766"></a>00766                 }
<a name="l00767"></a>00767             }
<a name="l00768"></a>00768             <span class="keywordflow">if</span> (tn == null)
<a name="l00769"></a>00769             {
<a name="l00770"></a>00770                 <a class="code" href="class_skilful_1_1_main_form.html#aea2780e1ac77313b236a0983da95f1a3">AddSymList</a>(<a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#ac62fcb90b148661c02f211b01fe5feeb">DataSource</a>.<a class="code" href="class_skilful_1_1_data_1_1_data_source_library_loader.html#a20e1de9f498ed0956c52337bc91dfa9b">name2index</a>(ModuleName), ModuleName, symlist);
<a name="l00771"></a>00771                 <a class="code" href="class_skilful_1_1_main_form.html#a38cf9553d09801ec41c7544646758471">toolStripContainerSymbolTree_expand</a>(<span class="keyword">true</span>);
<a name="l00772"></a>00772                 <span class="comment">//treeViewSymbols.ExpandAll();</span>
<a name="l00773"></a>00773             }
<a name="l00774"></a>00774             <span class="keywordflow">else</span>
<a name="l00775"></a>00775             {
<a name="l00776"></a>00776                 SuspendLayout();
<a name="l00777"></a>00777                 tn.Nodes.Clear();
<a name="l00778"></a>00778                 <span class="keywordflow">foreach</span> (<span class="keywordtype">string</span> sym <span class="keywordflow">in</span> symlist)
<a name="l00779"></a>00779                 {
<a name="l00780"></a>00780                     tn.Nodes.Add(<span class="keyword">new</span> TreeNode(sym));
<a name="l00781"></a>00781                 }
<a name="l00782"></a>00782                 ResumeLayout(<span class="keyword">false</span>);
<a name="l00783"></a>00783             }
<a name="l00784"></a>00784         }
<a name="l00785"></a>00785 
<a name="l00786"></a>00786         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00787"></a>00787         <span class="keywordtype">string</span> chartname(TreeNode node, <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> tf)
<a name="l00788"></a>00788         {
<a name="l00789"></a>00789             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a0f485248512a37edd4503375da1f8e82">ShowSourceName</a>) <span class="keywordflow">return</span> node.Parent.Text + <span class="stringliteral">&quot;: &quot;</span> + node.Text + <span class="stringliteral">&quot; &quot;</span> + tf.ToString();
<a name="l00790"></a>00790             <span class="keywordflow">return</span> node.Text + <span class="stringliteral">&quot; &quot;</span> + tf.ToString();
<a name="l00791"></a>00791         }
<a name="l00792"></a>00792 
<a name="l00793"></a>00793         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00794"></a><a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">00794</a>         <span class="keyword">public</span> <span class="keywordtype">bool</span> <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<span class="keywordtype">string</span> ChartName)
<a name="l00795"></a>00795         {
<a name="l00796"></a>00796             <span class="keywordflow">foreach</span> (<a class="code" href="class_skilful_1_1_working.html">Working</a> win <span class="keywordflow">in</span> workingCharts)
<a name="l00797"></a>00797             {
<a name="l00798"></a>00798                 <span class="keywordflow">if</span> (win.<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Text == ChartName)
<a name="l00799"></a>00799                 {
<a name="l00800"></a>00800                     win.<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Focus();
<a name="l00801"></a>00801                     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00802"></a>00802                 }
<a name="l00803"></a>00803             }
<a name="l00804"></a>00804             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00805"></a>00805         }
<a name="l00806"></a>00806 
<a name="l00807"></a>00807         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00808"></a>00808         <span class="keyword">private</span> <span class="keywordtype">void</span> selectDataSourceToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00809"></a>00809         {
<a name="l00810"></a>00810             <a class="code" href="class_skilful_1_1_data_1_1_select_data_source___form.html">SelectDataSource_Form</a> DataSourceForm = <span class="keyword">new</span> <a class="code" href="class_skilful_1_1_data_1_1_select_data_source___form.html">SelectDataSource_Form</a>(<a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>);
<a name="l00811"></a>00811             this.AddOwnedForm(DataSourceForm);
<a name="l00812"></a>00812             DataSourceForm.ShowDialog();
<a name="l00813"></a>00813         }
<a name="l00814"></a>00814 
<a name="l00815"></a>00815         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00816"></a><a class="code" href="class_skilful_1_1_main_form.html#a38cf9553d09801ec41c7544646758471">00816</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#a38cf9553d09801ec41c7544646758471">toolStripContainerSymbolTree_expand</a>(<span class="keywordtype">bool</span> expand)
<a name="l00817"></a>00817         {
<a name="l00818"></a>00818             toolStripContainerSymbolTree.Width = expand ? 150 : 3;
<a name="l00819"></a>00819             label1.Visible = expand;
<a name="l00820"></a>00820             label2.Visible = !expand;
<a name="l00821"></a>00821         }
<a name="l00822"></a>00822 
<a name="l00823"></a>00823         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00824"></a>00824         <span class="keywordtype">bool</span> enable_tree_expand = <span class="keyword">true</span>;
<a name="l00825"></a>00825         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripContainerSymbolTree_ContentPanel_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00826"></a>00826         {
<a name="l00827"></a>00827             <span class="keywordflow">if</span> (enable_tree_expand)
<a name="l00828"></a>00828                 <a class="code" href="class_skilful_1_1_main_form.html#a38cf9553d09801ec41c7544646758471">toolStripContainerSymbolTree_expand</a>(toolStripContainerSymbolTree.Width == 3);
<a name="l00829"></a>00829             enable_tree_expand = <span class="keyword">true</span>;
<a name="l00830"></a>00830         }
<a name="l00831"></a>00831 
<a name="l00832"></a>00832         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00833"></a>00833         <span class="keyword">private</span> <span class="keywordtype">void</span> label2_MouseMove(<span class="keywordtype">object</span> sender, MouseEventArgs e)
<a name="l00834"></a>00834         {
<a name="l00835"></a>00835             <span class="keywordflow">if</span> (e.Button == MouseButtons.Left)
<a name="l00836"></a>00836             {
<a name="l00837"></a>00837                 <span class="keywordtype">int</span> new_width = toolStripContainerSymbolTree.Width + e.X;
<a name="l00838"></a>00838                 <span class="keywordflow">if</span> (new_width &gt; 3 &amp;&amp; new_width &lt; (this.Width - 6))
<a name="l00839"></a>00839                     toolStripContainerSymbolTree.Width = new_width;
<a name="l00840"></a>00840                 enable_tree_expand = <span class="keyword">false</span>;
<a name="l00841"></a>00841             }
<a name="l00842"></a>00842         }
<a name="l00843"></a>00843 
<a name="l00844"></a>00844         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00845"></a>00845         <span class="keywordtype">void</span> InitSymbolsTreeView()
<a name="l00846"></a>00846         {
<a name="l00847"></a>00847             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#ac62fcb90b148661c02f211b01fe5feeb">DataSource</a>.<a class="code" href="class_skilful_1_1_data_1_1_data_source_library_loader.html#a3472772fb03cecf3fcdb844cf4d1335a">Count</a>(); i++)
<a name="l00848"></a>00848             {
<a name="l00849"></a>00849                 <span class="keywordtype">string</span>[] SymbolList = <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#a90a5460a3375b4d5ba8320484ef70b34" title="получает список инструментов для модуля по индексу модуля в списке СелектДатаСурс.">GetSymbolList</a>(i);
<a name="l00850"></a>00850 
<a name="l00851"></a>00851                 Dictionary&lt;string, string&gt; param;
<a name="l00852"></a>00852                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#addcc20e5aced7933be882305a4f7a291">Config</a>.TryGetValue(<a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#ac62fcb90b148661c02f211b01fe5feeb">DataSource</a>[i].name, out param) &amp;&amp; (param[<span class="stringliteral">&quot;checked&quot;</span>] == <span class="stringliteral">&quot;1&quot;</span>))
<a name="l00853"></a>00853                     <a class="code" href="class_skilful_1_1_main_form.html#aea2780e1ac77313b236a0983da95f1a3">AddSymList</a>(i, <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#ac62fcb90b148661c02f211b01fe5feeb">DataSource</a>[i].name, SymbolList);
<a name="l00854"></a>00854             }
<a name="l00855"></a>00855             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#ab1e0a8482063da3902309aeb706feda2">treeViewSymbols</a>.Nodes.Count &gt; 0)
<a name="l00856"></a>00856             {
<a name="l00857"></a>00857                 <a class="code" href="class_skilful_1_1_main_form.html#a38cf9553d09801ec41c7544646758471">toolStripContainerSymbolTree_expand</a>(<span class="keyword">true</span>);
<a name="l00858"></a>00858                 <span class="comment">//treeViewSymbols.ExpandAll();</span>
<a name="l00859"></a>00859             }
<a name="l00860"></a>00860         }
<a name="l00861"></a>00861         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00862"></a>00862         TreeNode SelectedSymbolNode;
<a name="l00863"></a>00863         <span class="keyword">private</span> <span class="keywordtype">void</span> treeViewSymbols_NodeMouseClick(<span class="keywordtype">object</span> sender, TreeNodeMouseClickEventArgs e)
<a name="l00864"></a>00864         {
<a name="l00865"></a>00865             SelectedSymbolNode = e.Node;
<a name="l00866"></a>00866 
<a name="l00867"></a>00867             <span class="keywordflow">if</span> (e.Button == MouseButtons.Right) e.Node.TreeView.SelectedNode = e.Node;
<a name="l00868"></a>00868             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (e.Button == MouseButtons.Left)
<a name="l00869"></a>00869             {
<a name="l00870"></a>00870                 <span class="keywordflow">if</span> (e.Node.Level == 1) <span class="comment">//is Symbol list level</span>
<a name="l00871"></a>00871                     <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m60, SelectedSymbolNode);
<a name="l00872"></a>00872             }
<a name="l00873"></a>00873         }
<a name="l00874"></a>00874         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00875"></a>00875         <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> tf, TreeNode node)
<a name="l00876"></a>00876         {
<a name="l00877"></a>00877             <span class="keywordflow">if</span> (node.Level == 0) <span class="keywordflow">return</span>; <span class="comment">//is root_element</span>
<a name="l00878"></a>00878             <span class="keywordtype">string</span> ChartName = chartname(node, tf);
<a name="l00879"></a>00879             <span class="keywordtype">string</span> SymbolName = node.Text;
<a name="l00880"></a>00880             <a class="code" href="class_skilful_1_1_data_1_1_data_sourse_module.html">DataSourseModule</a> DataSource = <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#ac62fcb90b148661c02f211b01fe5feeb">DataSource</a>[(int)node.Parent.Tag]; <span class="comment">//TreeView-&gt;Root_n                                                                                                                                                                                   ode-&gt;tag is DatasouerceModule index</span>
<a name="l00881"></a>00881 
<a name="l00882"></a>00882             <span class="comment">//check for existing window and focus to one</span>
<a name="l00883"></a>00883             if (!<a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(ChartName))
<a name="l00884"></a>00884             {
<a name="l00885"></a>00885                 <span class="comment">//or create new window</span>
<a name="l00886"></a>00886                 <span class="comment">//нюанс при работе с модулем МТ4 -- необходимо освежить входной файл цсв перед загрузкой</span>
<a name="l00887"></a>00887                 <span class="keywordflow">if</span> (DataSource.<a class="code" href="class_skilful_1_1_data_1_1_data_sourse_module.html#ae455c83d61949d579014ed7251fca5f2">name</a> == <span class="stringliteral">&quot;MT4&quot;</span>)
<a name="l00888"></a>00888                 {
<a name="l00889"></a>00889                     <span class="keywordtype">int</span> i = node.Tag == null ? 0 : (int)node.Tag; <span class="comment">//nested level of tree nodes</span>
<a name="l00890"></a>00890                     if ((i &amp; 1) == 0 &amp;&amp; tf &lt; <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Day) <span class="comment">//файл 60 был обновлен</span>
<a name="l00891"></a>00891                     {
<a name="l00892"></a>00892                         <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#ab5f6f28a1c0962acbe946ccf9e6b4c4e">mergeUpdatetoHistoryFile</a>(SymbolName, 60);
<a name="l00893"></a>00893                         i |= 1;
<a name="l00894"></a>00894                     }
<a name="l00895"></a>00895                     <span class="keywordflow">if</span> ((i &amp; 2) == 0 &amp;&amp; tf &gt;= <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Day) <span class="comment">//файл 1440 был обновлен</span>
<a name="l00896"></a>00896                     {
<a name="l00897"></a>00897                         <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#ab5f6f28a1c0962acbe946ccf9e6b4c4e">mergeUpdatetoHistoryFile</a>(SymbolName, 1440);
<a name="l00898"></a>00898                         i |= 2;
<a name="l00899"></a>00899                     }
<a name="l00900"></a>00900                     node.Tag = i; <span class="comment">// флаги обновления входных файлов csv (60 1й бит и 1440 2й бит)</span>
<a name="l00901"></a>00901                 }
<a name="l00902"></a>00902                 <span class="comment">//в случае доступа к мт через мтпрокси, можно получить родные данные о символах</span>
<a name="l00903"></a>00903                 <span class="keywordtype">int</span> digits = (DataSource.<a class="code" href="class_skilful_1_1_data_1_1_data_sourse_module.html#ae455c83d61949d579014ed7251fca5f2">name</a> == <span class="stringliteral">&quot;MT4&quot;</span> &amp;&amp; <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#ae9cde1fae556f87f22c493431e849296">Digits</a>.ContainsKey(SymbolName)) ? <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#ae9cde1fae556f87f22c493431e849296">Digits</a>[SymbolName] : 100;
<a name="l00904"></a>00904                 <a class="code" href="class_skilful_1_1_main_form.html#aa33d08d7c73eb3a7793fd0b9a4a57ee5">CreateChart</a>(DataSource, ChartName, SymbolName, tf, node, digits);
<a name="l00905"></a>00905             }
<a name="l00906"></a>00906         }
<a name="l00907"></a>00907         <span class="comment">//----------------------------------------------------------------//</span>
<a name="l00908"></a>00908         <span class="keyword">private</span> <span class="keywordtype">void</span> contextMenu_SymbolFrames_ItemClicked(<span class="keywordtype">object</span> sender, ToolStripItemClickedEventArgs e)
<a name="l00909"></a>00909         {
<a name="l00910"></a>00910             <span class="keywordflow">switch</span> (e.ClickedItem.Text)
<a name="l00911"></a>00911             {
<a name="l00912"></a>00912                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;60&quot;</span>: <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m60, SelectedSymbolNode); <span class="keywordflow">break</span>;
<a name="l00913"></a>00913                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;240&quot;</span>: <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m240, SelectedSymbolNode); <span class="keywordflow">break</span>;
<a name="l00914"></a>00914                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Daily&quot;</span>: <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Day, SelectedSymbolNode); <span class="keywordflow">break</span>;
<a name="l00915"></a>00915                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Weekly&quot;</span>: <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Week, SelectedSymbolNode); <span class="keywordflow">break</span>;
<a name="l00916"></a>00916                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Monthly&quot;</span>: <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Month, SelectedSymbolNode); <span class="keywordflow">break</span>;
<a name="l00917"></a>00917                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Quarterly&quot;</span>: <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Quarter, SelectedSymbolNode); <span class="keywordflow">break</span>;
<a name="l00918"></a>00918                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Yearly&quot;</span>: <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Year, SelectedSymbolNode); <span class="keywordflow">break</span>;
<a name="l00919"></a>00919                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;All Charts&quot;</span>:
<a name="l00920"></a>00920                     <span class="keywordflow">for</span> (<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> i = <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m60; i &lt; <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.count; i++)
<a name="l00921"></a>00921                         <a class="code" href="class_skilful_1_1_main_form.html#a5ac06c056d298a607032336521614893">ShowChart</a>(i, SelectedSymbolNode);
<a name="l00922"></a>00922                     <span class="keywordflow">break</span>;
<a name="l00923"></a>00923             }
<a name="l00924"></a>00924         }
<a name="l00925"></a>00925         <span class="comment">//================================================================//</span>
<a name="l00926"></a>00926         <span class="keywordtype">void</span> ActiveChart_Switch_charts_(<span class="keywordtype">string</span> s, List&lt;TF&gt; lstr)
<a name="l00927"></a>00927         {
<a name="l00928"></a>00928 
<a name="l00929"></a>00929             <span class="keywordflow">switch</span> (s)
<a name="l00930"></a>00930             {
<a name="l00931"></a>00931                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Close this&quot;</span>:
<a name="l00932"></a>00932                     <span class="keywordflow">if</span> (lstr.Count == 1) <span class="keywordflow">return</span>;
<a name="l00933"></a>00933                     ChartV2.Control c = workingCharts[Get_Index_Current_workingChart()].ActiveChart;
<a name="l00934"></a>00934                     <span class="keywordtype">int</span> i = lstr.IndexOf(c.seriesList[0].legend.frame);
<a name="l00935"></a>00935                     <span class="keywordflow">if</span> (i == 0) switchTFonActiveChart(lstr[i + 1]);
<a name="l00936"></a>00936                     <span class="keywordflow">else</span> switchTFonActiveChart(lstr[i - 1]);
<a name="l00937"></a>00937                     workingCharts[Get_Index_Current_workingChart()].workingForm.Controls.Remove(c);
<a name="l00938"></a>00938                     <span class="keywordflow">break</span>;
<a name="l00939"></a>00939                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;m60&quot;</span>: switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m60);
<a name="l00940"></a>00940                     <span class="keywordflow">break</span>;
<a name="l00941"></a>00941                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;m240&quot;</span>: switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m240);
<a name="l00942"></a>00942                     <span class="keywordflow">break</span>;
<a name="l00943"></a>00943                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Day&quot;</span>: switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Day);
<a name="l00944"></a>00944                     <span class="keywordflow">break</span>;
<a name="l00945"></a>00945                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Week&quot;</span>: switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Week);
<a name="l00946"></a>00946                     <span class="keywordflow">break</span>;
<a name="l00947"></a>00947                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Month&quot;</span>: switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Month);
<a name="l00948"></a>00948                     <span class="keywordflow">break</span>;
<a name="l00949"></a>00949                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Quarter&quot;</span>: switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Quarter);
<a name="l00950"></a>00950                     <span class="keywordflow">break</span>;
<a name="l00951"></a>00951                 <span class="keywordflow">case</span> <span class="stringliteral">&quot;Year&quot;</span>: switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Year);
<a name="l00952"></a>00952                     <span class="keywordflow">break</span>;
<a name="l00953"></a>00953 
<a name="l00954"></a>00954 
<a name="l00955"></a>00955             }
<a name="l00956"></a>00956         }
<a name="l00957"></a>00957 
<a name="l00958"></a>00958 
<a name="l00959"></a>00959 
<a name="l00960"></a>00960         [DllImport(<span class="stringliteral">&quot;User32.dll&quot;</span>)]
<a name="l00961"></a>00961         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="class_skilful_1_1_main_form.html#a721ac4d0ecc1fe2e01f9ff3286981856">FindWindow</a>(<span class="keywordtype">string</span> classname, <span class="keywordtype">string</span> windowname);
<a name="l00962"></a>00962         [DllImport(<span class="stringliteral">&quot;User32.dll&quot;</span>)]
<a name="l00963"></a>00963         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">bool</span> <a class="code" href="class_skilful_1_1_main_form.html#a99656ed4cd25ec2c168c7903f3f9f331">SetForegroundWindow</a>(<span class="keywordtype">int</span> hwnd);
<a name="l00964"></a>00964         Process help;
<a name="l00965"></a>00965         <span class="keywordtype">bool</span> eventHelp_ = <span class="keyword">false</span>;
<a name="l00966"></a>00966         <span class="keyword">private</span> <span class="keywordtype">void</span> manualToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l00967"></a>00967         {
<a name="l00968"></a>00968             <span class="keywordflow">if</span> (!eventHelp_)
<a name="l00969"></a>00969             {
<a name="l00970"></a>00970                 <span class="keywordflow">try</span>
<a name="l00971"></a>00971                 {
<a name="l00972"></a>00972                     help = Process.Start(Application.StartupPath + <span class="stringliteral">&quot;\\Skilful Help.chm&quot;</span>);
<a name="l00973"></a>00973                     help.EnableRaisingEvents = <span class="keyword">true</span>;
<a name="l00974"></a>00974                     help.Exited += <span class="keyword">new</span> EventHandler(help_Exited);
<a name="l00975"></a>00975                     eventHelp_ = <span class="keyword">true</span>;
<a name="l00976"></a>00976                 }
<a name="l00977"></a>00977                 <span class="keywordflow">catch</span> (Win32Exception ev)
<a name="l00978"></a>00978                 {
<a name="l00979"></a>00979                     <span class="keywordflow">if</span> (ev.NativeErrorCode == 2)
<a name="l00980"></a>00980                         MessageBox.Show(ev.Message, <span class="stringliteral">&quot;&quot;</span>, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
<a name="l00981"></a>00981                 }
<a name="l00982"></a>00982             }
<a name="l00983"></a>00983             <span class="keywordflow">else</span> <a class="code" href="class_skilful_1_1_main_form.html#a99656ed4cd25ec2c168c7903f3f9f331">SetForegroundWindow</a>(<a class="code" href="class_skilful_1_1_main_form.html#a721ac4d0ecc1fe2e01f9ff3286981856">FindWindow</a>(null, <span class="stringliteral">&quot;Skilful Help&quot;</span>));
<a name="l00984"></a>00984         }
<a name="l00985"></a>00985         <span class="keyword">private</span> <span class="keywordtype">void</span> help_Exited(<span class="keywordtype">object</span> sender, System.EventArgs e)
<a name="l00986"></a>00986         {
<a name="l00987"></a>00987             eventHelp_ = <span class="keyword">false</span>;
<a name="l00988"></a>00988         }
<a name="l00989"></a>00989 
<a name="l00994"></a>00994         [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = <span class="stringliteral">&quot;FullTrust&quot;</span>)]
<a name="l00995"></a><a class="code" href="class_skilful_1_1_main_form.html#aa72ea6d3caeadc9a06ce44cc6990c8ff">00995</a>         <span class="keyword">protected</span> <span class="keyword">override</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_main_form.html#aa72ea6d3caeadc9a06ce44cc6990c8ff" title="Для обновления окон с барами по сигналу от эксперта.">WndProc</a>(ref Message m)
<a name="l00996"></a>00996         {
<a name="l00997"></a>00997             <span class="keywordtype">int</span> msg = m.Msg &amp; 0x70F;
<a name="l00998"></a>00998             <span class="keywordflow">if</span> (msg != 0)
<a name="l00999"></a>00999                 <span class="keywordflow">switch</span> (msg)
<a name="l01000"></a>01000                 {
<a name="l01001"></a>01001                     <span class="comment">// WParam -- код символа</span>
<a name="l01002"></a>01002                     <span class="comment">// LParam -- период в мтшном стиле</span>
<a name="l01003"></a>01003                     <span class="keywordflow">case</span> WM_MT4UPDATE:
<a name="l01004"></a>01004                         <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;WM_MT4UPDATE:&quot;</span>);
<a name="l01005"></a>01005                         <span class="comment">//WM_MT4UPDATE приходит при получении нового бара, при этом перезаписывается файл - последние 100-500 баров</span>
<a name="l01006"></a>01006                         <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#ab5f6f28a1c0962acbe946ccf9e6b4c4e">mergeUpdatetoHistoryFile</a>(m.WParam.ToInt32(), m.LParam.ToInt32());
<a name="l01007"></a>01007                         <a class="code" href="class_skilful_1_1_data_1_1_data_sourse_module.html">DataSourseModule</a> mt4mod = <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#ac62fcb90b148661c02f211b01fe5feeb">DataSource</a>[<span class="stringliteral">&quot;MT4&quot;</span>];
<a name="l01008"></a>01008                         <span class="keywordflow">if</span> (mt4mod != null)
<a name="l01009"></a>01009                         {
<a name="l01010"></a>01010                             <span class="keywordtype">string</span> sym = <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a901824fbbf05f46782629d0acc509b85">getSymbolFromCode</a>(m.WParam.ToInt32());
<a name="l01011"></a>01011                             <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> tf = <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m60;
<a name="l01012"></a>01012                             <span class="keywordflow">switch</span> (m.LParam.ToInt32())
<a name="l01013"></a>01013                             {
<a name="l01014"></a>01014                                 <span class="keywordflow">case</span> 60: tf = <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m60; <span class="keywordflow">break</span>;
<a name="l01015"></a>01015                                 <span class="keywordflow">case</span> 240: tf = <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m240; <span class="keywordflow">break</span>;
<a name="l01016"></a>01016                                 <span class="keywordflow">case</span> 1440: tf = <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Day; <span class="keywordflow">break</span>;
<a name="l01017"></a>01017                                 <span class="keywordflow">case</span> 10080: tf = <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Week; <span class="keywordflow">break</span>;
<a name="l01018"></a>01018                                 <span class="keywordflow">case</span> 43200: tf = <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Month; <span class="keywordflow">break</span>;
<a name="l01019"></a>01019                             }
<a name="l01020"></a>01020                             <span class="keywordtype">int</span> lastPosition;
<a name="l01021"></a>01021                             DateTime lastTime = <a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#a2a80edd87866a34041ec8fc9d13a0801">GetLastTime</a>(<span class="stringliteral">&quot;MT4&quot;</span>, sym, tf, out lastPosition);
<a name="l01022"></a>01022                             mt4mod.<a class="code" href="class_skilful_1_1_data_1_1_data_sourse_module.html#aa50cbe419803adf61a4ee092455c7d73">get_bar</a>(sym, tf, lastTime, lastPosition);
<a name="l01023"></a>01023                         }
<a name="l01024"></a>01024                         <span class="keywordflow">break</span>;
<a name="l01025"></a>01025 
<a name="l01026"></a>01026                     <span class="comment">// WM_MESSADGE -- старшие 16бит=0000 ибо иначе сообщения не проходят, 4бита=digits, младшие 12бит=код сообщения</span>
<a name="l01027"></a>01027                     <span class="comment">// WParam -- дата+время в си стиле</span>
<a name="l01028"></a>01028                     <span class="comment">// LParam -- старшие 12 бит=код символа, младшие 20=бид/аск. </span>
<a name="l01029"></a>01029                     <span class="keywordflow">case</span> WM_MT4TICK_BID:
<a name="l01030"></a>01030                         DateTime DT = <span class="keyword">new</span> DateTime(1970, 01, 01) + TimeSpan.FromSeconds((uint)m.WParam.ToInt32());
<a name="l01031"></a>01031                         <span class="keywordtype">int</span> digits = (m.Msg &gt;&gt; 12) - 7;
<a name="l01032"></a>01032                         <span class="keywordtype">double</span> bid = (m.LParam.ToInt32() &amp; 0xfffff) * Math.Pow(10, -digits);
<a name="l01033"></a>01033                         <a class="code" href="class_skilful_1_1_main_form.html#a78157fdf0f168ee03aec279d36153c70">Tick2Chart</a>(<span class="stringliteral">&quot;MT4&quot;</span>, <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a901824fbbf05f46782629d0acc509b85">getSymbolFromCode</a>(m.LParam.ToInt32() &gt;&gt; 20), DT, bid, 0);
<a name="l01034"></a>01034                         <span class="keywordflow">break</span>;
<a name="l01035"></a>01035 
<a name="l01036"></a>01036                     <span class="keywordflow">case</span> WM_MT4TICK_ASK:
<a name="l01037"></a>01037                         DT = <span class="keyword">new</span> DateTime(1970, 01, 01) + TimeSpan.FromSeconds((uint)m.WParam.ToInt32());
<a name="l01038"></a>01038                         digits = (m.Msg &gt;&gt; 12) - 7;
<a name="l01039"></a>01039                         <span class="keywordtype">double</span> ask = (m.LParam.ToInt32() &amp; 0xfffff) * Math.Pow(10, -digits);
<a name="l01040"></a>01040                         <a class="code" href="class_skilful_1_1_main_form.html#a78157fdf0f168ee03aec279d36153c70">Tick2Chart</a>(<span class="stringliteral">&quot;MT4&quot;</span>, <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a901824fbbf05f46782629d0acc509b85">getSymbolFromCode</a>(m.LParam.ToInt32() &gt;&gt; 20), DT, 0, ask);
<a name="l01041"></a>01041                         <span class="keywordflow">break</span>;
<a name="l01042"></a>01042 
<a name="l01043"></a>01043 
<a name="l01044"></a>01044                     <span class="comment">//case WM_MT4TICK:</span>
<a name="l01045"></a>01045                     <span class="comment">//    //такая себе упаковка: параметры</span>
<a name="l01046"></a>01046                     <span class="comment">//    // WM_MESSADGE -- старшие 12бит=код символа, 4бита=digits, младшие 16бит=код сообщения</span>
<a name="l01047"></a>01047                     <span class="comment">//    // WParam -- дата+время в си стиле</span>
<a name="l01048"></a>01048                     <span class="comment">//    // LParam -- старшие 8 бит=спред младшие 24=бид.</span>
<a name="l01049"></a>01049                     <span class="comment">//    DateTime DT = new DateTime(1970, 01, 01) + TimeSpan.FromSeconds((uint)m.WParam.ToInt32());</span>
<a name="l01050"></a>01050                     <span class="comment">//    int digits = (m.Msg &gt;&gt; 16) &amp; 0xF;</span>
<a name="l01051"></a>01051                     <span class="comment">//    double bid = (m.LParam.ToInt32() &amp; 0xffffff) * Math.Pow(10, -digits);</span>
<a name="l01052"></a>01052                     <span class="comment">//    double ask = bid - (m.LParam.ToInt32() &gt;&gt; 24) * Math.Pow(10, -digits);</span>
<a name="l01053"></a>01053                     <span class="comment">//    NewTick(&quot;MT4&quot;, mt4.getSymbolFromCode(m.Msg &gt;&gt; 20), DT, bid, ask);</span>
<a name="l01054"></a>01054                     <span class="comment">//    break;</span>
<a name="l01055"></a>01055 
<a name="l01056"></a>01056                     <span class="keywordflow">case</span> WM_MT4HISTORY:
<a name="l01057"></a>01057                         <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;WM_MT4HISTORY:mt4.loadHistoryFile&quot;</span>);
<a name="l01058"></a>01058                         <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a3588b6e2a02b1b9a9aab844d03f5d404">mt4init</a>();
<a name="l01059"></a>01059                         <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a9f47089836b01303f06a3447509b09c3">loadHistoryFile</a>(m.WParam.ToInt32(), m.LParam.ToInt32());
<a name="l01060"></a>01060                         <span class="comment">//for WM_MT4HISTORY WParam contains symbol_code and pip_value</span>
<a name="l01061"></a>01061                         <span class="keywordtype">string</span> symbol = <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a901824fbbf05f46782629d0acc509b85">getSymbolFromCode</a>(m.WParam.ToInt32());
<a name="l01062"></a>01062                         <span class="comment">//check for symbol in symbol`s tree</span>
<a name="l01063"></a>01063                         <span class="keywordflow">if</span> (!SymbolExist(<span class="stringliteral">&quot;MT4&quot;</span>, symbol))
<a name="l01064"></a>01064                         {
<a name="l01065"></a>01065                             <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot; : RefreshSymList &quot;</span> + symbol);
<a name="l01066"></a>01066                             <a class="code" href="class_skilful_1_1_main_form.html#a2b92318852be50fc52e5cd3b660444c7">RefreshSymList</a>(<span class="stringliteral">&quot;MT4&quot;</span>);
<a name="l01067"></a>01067                         }
<a name="l01068"></a>01068                         <span class="keywordflow">break</span>;
<a name="l01069"></a>01069 
<a name="l01070"></a>01070                     <span class="keywordflow">case</span> WM_MT4INIT:
<a name="l01071"></a>01071                         <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a3588b6e2a02b1b9a9aab844d03f5d404">mt4init</a>();
<a name="l01072"></a>01072                         <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_t4messages.html#af23538ec828cd0a15dfb053924a3dd1e">AddMessage</a>(<span class="stringliteral">&quot;MT4 expert initialized.&quot;</span>);
<a name="l01073"></a>01073                         <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.Show();
<a name="l01074"></a>01074                         <span class="keywordflow">break</span>;
<a name="l01075"></a>01075 
<a name="l01076"></a>01076                     <span class="keywordflow">case</span> WM_MT4CONNECTIONLOST:
<a name="l01077"></a>01077                         <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_t4messages.html#af23538ec828cd0a15dfb053924a3dd1e">AddMessage</a>(<span class="stringliteral">&quot;MT4 connection lost.&quot;</span>);
<a name="l01078"></a>01078                         <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.Show();
<a name="l01079"></a>01079                         <span class="keywordflow">break</span>;
<a name="l01080"></a>01080 
<a name="l01081"></a>01081                     <span class="keywordflow">case</span> WM_MT4PIPVAL:
<a name="l01082"></a>01082                         <span class="keywordflow">break</span>;
<a name="l01083"></a>01083                 }
<a name="l01084"></a>01084             m.Msg &amp;= 0x0000FFFF;
<a name="l01085"></a>01085             base.WndProc(ref m);
<a name="l01086"></a>01086         }
<a name="l01087"></a>01087         <span class="comment">// ==== Работа с меню window (добавление/удаление) подменю при (инициализации/дезактивации) workingChart) ===</span>
<a name="l01088"></a>01088 
<a name="l01089"></a>01089         <span class="comment">// -- добавление в Меню window элемента открываемого графика</span>
<a name="l01090"></a>01090 
<a name="l01091"></a>01091         ToolStripMenuItem windowMenuDropChart;
<a name="l01092"></a>01092         <span class="keywordtype">int</span> checkWindowMenuDropChart;
<a name="l01093"></a>01093 
<a name="l01094"></a>01094         <span class="keyword">private</span> <span class="keywordtype">void</span> Add_menuItem_menuWindow(<span class="keywordtype">string</span> nameWorkingChart, IntPtr hahdle)
<a name="l01095"></a>01095         {
<a name="l01096"></a>01096             windowMenuDropChart = <span class="keyword">new</span> ToolStripMenuItem();
<a name="l01097"></a>01097             windowMenuDropChart.Checked = <span class="keyword">true</span>;
<a name="l01098"></a>01098             windowMenuDropChart.Name = Convert.ToString(hahdle);
<a name="l01099"></a>01099             windowMenuDropChart.Text = nameWorkingChart;
<a name="l01100"></a>01100             windowMenuDropChart.Click += <span class="keyword">new</span> EventHandler(windowMenuDropChart_Click);
<a name="l01101"></a>01101 
<a name="l01102"></a>01102             <span class="keywordflow">if</span> (workingCharts.Count &gt; 0)
<a name="l01103"></a>01103 
<a name="l01104"></a>01104                 ((ToolStripMenuItem)windowStripMenuItem.DropDownItems[checkWindowMenuDropChart]).Checked = <span class="keyword">false</span>;
<a name="l01105"></a>01105 
<a name="l01106"></a>01106 
<a name="l01107"></a>01107             windowStripMenuItem.DropDownItems.Add(windowMenuDropChart);
<a name="l01108"></a>01108             checkWindowMenuDropChart = windowStripMenuItem.DropDownItems.Count - 1;
<a name="l01109"></a>01109 
<a name="l01110"></a>01110         }
<a name="l01111"></a>01111 
<a name="l01112"></a>01112         <span class="keywordtype">void</span> windowMenuDropChart_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01113"></a>01113         {
<a name="l01114"></a>01114             ToolStripMenuItem i = (ToolStripMenuItem)sender;
<a name="l01115"></a>01115             <span class="keywordflow">if</span> (!i.Checked)
<a name="l01116"></a>01116             {
<a name="l01117"></a>01117                 <span class="keywordflow">foreach</span> (Working w <span class="keywordflow">in</span> workingCharts)
<a name="l01118"></a>01118                     <span class="keywordflow">if</span> (Convert.ToString(w.workingForm.Handle) == i.Name)
<a name="l01119"></a>01119                     {
<a name="l01120"></a>01120                         ((ToolStripMenuItem)windowStripMenuItem.DropDownItems[checkWindowMenuDropChart]).Checked = <span class="keyword">false</span>;
<a name="l01121"></a>01121                         checkWindowMenuDropChart = windowStripMenuItem.DropDownItems.IndexOf(i);
<a name="l01122"></a>01122                         ((ToolStripMenuItem)windowStripMenuItem.DropDownItems[checkWindowMenuDropChart]).Checked = <span class="keyword">true</span>;
<a name="l01123"></a>01123                         w.workingForm.Focus();
<a name="l01124"></a>01124                         <span class="keywordflow">return</span>;
<a name="l01125"></a>01125                     }
<a name="l01126"></a>01126             }
<a name="l01127"></a>01127             <span class="keywordflow">else</span>
<a name="l01128"></a>01128                 workingCharts[Get_Index_Current_workingChart()].workingForm.Focus();
<a name="l01129"></a>01129         }
<a name="l01130"></a>01130 
<a name="l01131"></a>01131         <span class="comment">// -- удаление из Меню window элемента закрываемого графика</span>
<a name="l01132"></a>01132         <span class="keyword">private</span> <span class="keywordtype">void</span> Remove_menuItem_menuWindow(IntPtr handle)
<a name="l01133"></a>01133         {
<a name="l01134"></a>01134             <span class="keywordflow">if</span> (Get_Index_Current_workingChart() == -1) <span class="keywordflow">return</span>;
<a name="l01135"></a>01135             <span class="keywordtype">int</span> j = windowStripMenuItem.DropDownItems.Count - workingCharts.Count;
<a name="l01136"></a>01136             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = j; windowStripMenuItem.DropDownItems.Count &gt; i; i++)
<a name="l01137"></a>01137                 <span class="keywordflow">if</span> (((ToolStripMenuItem)windowStripMenuItem.DropDownItems[i]).Name == Convert.ToString(handle))
<a name="l01138"></a>01138                 {
<a name="l01139"></a>01139                     windowStripMenuItem.DropDownItems.RemoveAt(i);
<a name="l01140"></a>01140                     <span class="keywordflow">return</span>;
<a name="l01141"></a>01141                 }
<a name="l01142"></a>01142 
<a name="l01143"></a>01143         }
<a name="l01144"></a>01144         <span class="comment">// --- установка галочки в меню на выбранный график</span>
<a name="l01145"></a>01145         <span class="keyword">private</span> <span class="keywordtype">void</span> Set_Check_menuItem_menuWindow()
<a name="l01146"></a>01146         {
<a name="l01147"></a>01147             <span class="keywordtype">int</span> k = Get_Index_Current_workingChart();
<a name="l01148"></a>01148             <span class="keywordflow">if</span> (k == -1) <span class="keywordflow">return</span>;
<a name="l01149"></a>01149             ToolStripItemCollection tc = windowStripMenuItem.DropDownItems;
<a name="l01150"></a>01150             <span class="keywordtype">int</span> j = windowStripMenuItem.DropDownItems.Count - workingCharts.Count;
<a name="l01151"></a>01151             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = j; windowStripMenuItem.DropDownItems.Count &gt;= i; i++)
<a name="l01152"></a>01152                 <span class="keywordflow">if</span> (((ToolStripMenuItem)tc[i]).Name == Convert.ToString(workingCharts[k].workingForm.Handle))
<a name="l01153"></a>01153                 {
<a name="l01154"></a>01154                     <span class="keywordflow">if</span> (windowStripMenuItem.DropDownItems.Count &gt; checkWindowMenuDropChart)
<a name="l01155"></a>01155                         ((ToolStripMenuItem)windowStripMenuItem.DropDownItems[checkWindowMenuDropChart]).Checked = <span class="keyword">false</span>;
<a name="l01156"></a>01156                     ((ToolStripMenuItem)tc[i]).Checked = <span class="keyword">true</span>;
<a name="l01157"></a>01157                     checkWindowMenuDropChart = i;
<a name="l01158"></a>01158                     <span class="keywordflow">return</span>;
<a name="l01159"></a>01159                 }
<a name="l01160"></a>01160         }
<a name="l01161"></a>01161 
<a name="l01162"></a>01162         <span class="comment">// ==== Работа с вкладками  (добавление/удаление) tabControl при (инициализации/дезактивации) workingChart) ===</span>
<a name="l01163"></a>01163 
<a name="l01164"></a>01164         <span class="comment">// -- добавление в tabControl элемента открываемого графика</span>
<a name="l01165"></a>01165         <span class="keywordtype">bool</span> select_tabPage = <span class="keyword">true</span>;
<a name="l01166"></a>01166         <span class="keyword">private</span> <span class="keywordtype">void</span> Add_TabItem_tabControl(<span class="keywordtype">string</span> nameWorkingChart, IntPtr hahdle)
<a name="l01167"></a>01167         {
<a name="l01168"></a>01168             TabPage tabControltabPageChart = <span class="keyword">new</span> TabPage(nameWorkingChart);
<a name="l01169"></a>01169             tabControltabPageChart.Name = Convert.ToString(hahdle);
<a name="l01170"></a>01170             <a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.Visible = <span class="keyword">true</span>;
<a name="l01171"></a>01171             <a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.TabPages.Add(tabControltabPageChart);
<a name="l01172"></a>01172             select_tabPage = <span class="keyword">true</span>;
<a name="l01173"></a>01173             <a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.SelectTab(tabControltabPageChart);
<a name="l01174"></a>01174 
<a name="l01175"></a>01175         }
<a name="l01176"></a>01176 
<a name="l01177"></a>01177 
<a name="l01178"></a>01178 
<a name="l01179"></a>01179         <span class="comment">// --  обработка выбранного TabPage</span>
<a name="l01180"></a>01180         <span class="keyword">private</span> <span class="keywordtype">void</span> tabControl_Selected(<span class="keywordtype">object</span> sender, TabControlEventArgs e)
<a name="l01181"></a>01181         {
<a name="l01182"></a>01182 
<a name="l01183"></a>01183             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.TabPages.Count == 0) <span class="keywordflow">return</span>;
<a name="l01184"></a>01184             <span class="keywordflow">if</span> (!select_tabPage)
<a name="l01185"></a>01185             {
<a name="l01186"></a>01186                 select_tabPage = <span class="keyword">true</span>;
<a name="l01187"></a>01187                 <span class="keywordflow">return</span>;
<a name="l01188"></a>01188             }
<a name="l01189"></a>01189             TabPage i = ((TabControl)sender).SelectedTab;
<a name="l01190"></a>01190             <span class="keywordflow">foreach</span> (Working w <span class="keywordflow">in</span> workingCharts)
<a name="l01191"></a>01191                 <span class="keywordflow">if</span> (Convert.ToString(w.workingForm.Handle) == i.Name)
<a name="l01192"></a>01192                 {
<a name="l01193"></a>01193                     w.workingForm.Focus();
<a name="l01194"></a>01194                     <span class="keywordflow">return</span>;
<a name="l01195"></a>01195                 }
<a name="l01196"></a>01196 
<a name="l01197"></a>01197         }
<a name="l01198"></a>01198 
<a name="l01199"></a>01199 
<a name="l01200"></a>01200         <span class="comment">// -- удаление TabPage</span>
<a name="l01201"></a>01201         <span class="keyword">private</span> <span class="keywordtype">void</span> Remove_TabItem_tabControl(IntPtr handle)
<a name="l01202"></a>01202         {
<a name="l01203"></a>01203             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.TabPages.Count == 1)
<a name="l01204"></a>01204                 <a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.Visible = <span class="keyword">false</span>;
<a name="l01205"></a>01205             <span class="keywordflow">foreach</span> (TabPage tp <span class="keywordflow">in</span> <a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.TabPages)
<a name="l01206"></a>01206                 <span class="keywordflow">if</span> (tp.Name == Convert.ToString(handle))
<a name="l01207"></a>01207                 {
<a name="l01208"></a>01208                     select_tabPage = <span class="keyword">false</span>;
<a name="l01209"></a>01209                     <a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.TabPages.Remove(tp);
<a name="l01210"></a>01210                     <span class="keywordflow">return</span>;
<a name="l01211"></a>01211                 }
<a name="l01212"></a>01212 
<a name="l01213"></a>01213         }
<a name="l01214"></a>01214 
<a name="l01215"></a>01215 
<a name="l01216"></a>01216         <span class="keyword">private</span> <span class="keywordtype">void</span> MainForm_DragEnter(<span class="keywordtype">object</span> sender, DragEventArgs e)
<a name="l01217"></a>01217         {
<a name="l01218"></a>01218             <span class="keywordflow">if</span> ((e.AllowedEffect &amp; DragDropEffects.Copy) == DragDropEffects.Copy &amp;&amp; e.Data.GetDataPresent(DataFormats.FileDrop))
<a name="l01219"></a>01219                 e.Effect = DragDropEffects.Copy;
<a name="l01220"></a>01220             <span class="keywordflow">else</span>
<a name="l01221"></a>01221                 e.Effect = DragDropEffects.None;
<a name="l01222"></a>01222         }
<a name="l01223"></a>01223 
<a name="l01224"></a>01224         <span class="keyword">private</span> <span class="keywordtype">void</span> MainForm_DragDrop(<span class="keywordtype">object</span> sender, DragEventArgs e)
<a name="l01225"></a>01225         {
<a name="l01226"></a>01226             <span class="keywordflow">if</span> (e.Data.GetDataPresent(DataFormats.FileDrop))
<a name="l01227"></a>01227             {
<a name="l01228"></a>01228                 <span class="keywordtype">string</span>[] filenames = (<span class="keywordtype">string</span>[])e.Data.GetData(DataFormats.FileDrop);
<a name="l01229"></a>01229                 <span class="keywordflow">foreach</span> (<span class="keywordtype">string</span> fileName <span class="keywordflow">in</span> filenames)
<a name="l01230"></a>01230                 {
<a name="l01231"></a>01231                     FileInfo fi = <span class="keyword">new</span> FileInfo(fileName);
<a name="l01232"></a>01232                     <span class="keywordflow">if</span> ((fi.Attributes &amp; (FileAttributes.Directory | FileAttributes.Device)) == 0 <span class="comment">/*&amp;&amp; Path.GetExtension(fi.Name) == &quot;.prn&quot;*/</span>)
<a name="l01233"></a>01233                         FileOpen(fileName);
<a name="l01234"></a>01234                 }
<a name="l01235"></a>01235             }
<a name="l01236"></a>01236 
<a name="l01237"></a>01237         }
<a name="l01238"></a>01238 
<a name="l01239"></a>01239         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonHLine_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01240"></a>01240         {
<a name="l01241"></a>01241             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01242"></a>01242 
<a name="l01243"></a>01243             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a04b5df8311284049e4dcb09f0e49b2de">HorizontalLine</a>();
<a name="l01244"></a>01244         }
<a name="l01245"></a>01245 
<a name="l01246"></a>01246         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonVLine_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01247"></a>01247         {
<a name="l01248"></a>01248             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01249"></a>01249 
<a name="l01250"></a>01250             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a8dc366ecc7093630348900c61f6cd768">VerticalLine</a>();
<a name="l01251"></a>01251         }
<a name="l01252"></a>01252 
<a name="l01253"></a>01253         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonCircle_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01254"></a>01254         {
<a name="l01255"></a>01255             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01256"></a>01256 
<a name="l01257"></a>01257             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a385dbc0b584b1fc00612a2d6eb5ae99e">Circle</a>();
<a name="l01258"></a>01258         }
<a name="l01259"></a>01259 
<a name="l01260"></a>01260         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonArrowC_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01261"></a>01261         {
<a name="l01262"></a>01262             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01263"></a>01263 
<a name="l01264"></a>01264             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#ac81b710348d2587574916a8cdf823148">Cursor_Arrow</a>();
<a name="l01265"></a>01265         }
<a name="l01266"></a>01266 
<a name="l01267"></a>01267         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonArc_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01268"></a>01268         {
<a name="l01269"></a>01269             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01270"></a>01270 
<a name="l01271"></a>01271             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#acc21577fa830576038a02e658b801f7a">Arc</a>();
<a name="l01272"></a>01272         }
<a name="l01273"></a>01273 
<a name="l01274"></a>01274         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonTLine_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01275"></a>01275         {
<a name="l01276"></a>01276             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01277"></a>01277 
<a name="l01278"></a>01278             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a7a925d3be4b952c2124e4a5396202fff">FreeLine</a>();
<a name="l01279"></a>01279         }
<a name="l01280"></a>01280         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonCycle_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01281"></a>01281         {
<a name="l01282"></a>01282             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01283"></a>01283 
<a name="l01284"></a>01284             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#af85da20a3649d3c73571037ceaa1d3df">Cycles</a>();
<a name="l01285"></a>01285         }
<a name="l01286"></a>01286 
<a name="l01287"></a>01287         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonCrossC_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01288"></a>01288         {
<a name="l01289"></a>01289             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01290"></a>01290 
<a name="l01291"></a>01291             ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a6d6743c83995f2fa0b07fe77a6028b68">Cursor_Cross</a>();
<a name="l01292"></a>01292         }
<a name="l01293"></a>01293 
<a name="l01294"></a>01294         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonCChart_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01295"></a>01295         {
<a name="l01296"></a>01296 
<a name="l01297"></a>01297             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01298"></a>01298             <span class="keywordtype">int</span> j = Get_Index_Current_workingChart();
<a name="l01299"></a>01299             ChartV2.ChartType ct = workingCharts[j].Quotes.chartType;
<a name="l01300"></a>01300             <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> tf = workingCharts[j].Quotes.tf;
<a name="l01301"></a>01301             <span class="keywordflow">if</span> (ct == ChartV2.ChartType.Candle) <span class="keywordflow">return</span>;
<a name="l01302"></a>01302             byte b = 0;
<a name="l01303"></a>01303             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; workingCharts[j].workingForm.Controls.Count; i++)
<a name="l01304"></a>01304             {
<a name="l01305"></a>01305                 <span class="keywordflow">if</span> (workingCharts[j].workingForm.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l01306"></a>01306                 ChartV2.Control c = (ChartV2.Control)workingCharts[j].workingForm.Controls[i];
<a name="l01307"></a>01307                 if (c.seriesList[0].legend.frame == tf) b++;
<a name="l01308"></a>01308             }
<a name="l01309"></a>01309             workingCharts[j].SetChartType(ChartV2.ChartType.Candle);
<a name="l01310"></a>01310             <span class="keywordflow">if</span> (b &lt; 2) ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a6a8265c844f9ef6548399bc9ea3d8d1e">Switch_charts_</a> += <span class="keyword">new</span> <a class="code" href="namespace_chart_v2.html#a125a51f817f70f74de68944d4e989fc2">Switch_charts</a>(ActiveChart_Switch_charts_);
<a name="l01311"></a>01311 
<a name="l01312"></a>01312         }
<a name="l01313"></a>01313 
<a name="l01314"></a>01314 
<a name="l01315"></a>01315 
<a name="l01316"></a>01316         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonCLine_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01317"></a>01317         {
<a name="l01318"></a>01318             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01319"></a>01319             <span class="keywordtype">int</span> j = Get_Index_Current_workingChart();
<a name="l01320"></a>01320             ChartV2.ChartType ct = workingCharts[Get_Index_Current_workingChart()].Quotes.chartType;
<a name="l01321"></a>01321             <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> tf = workingCharts[j].Quotes.tf;
<a name="l01322"></a>01322             <span class="keywordflow">if</span> (ct == ChartV2.ChartType.Line) <span class="keywordflow">return</span>;
<a name="l01323"></a>01323             byte b = 0;
<a name="l01324"></a>01324             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; workingCharts[j].workingForm.Controls.Count; i++)
<a name="l01325"></a>01325             {
<a name="l01326"></a>01326                 <span class="keywordflow">if</span> (workingCharts[j].workingForm.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l01327"></a>01327                 ChartV2.Control c = (ChartV2.Control)workingCharts[j].workingForm.Controls[i];
<a name="l01328"></a>01328                 if (c.seriesList[0].legend.frame == tf) b++;
<a name="l01329"></a>01329             }
<a name="l01330"></a>01330             workingCharts[Get_Index_Current_workingChart()].SetChartType(ChartV2.ChartType.Line);
<a name="l01331"></a>01331             <span class="keywordflow">if</span> (b &lt; 2) ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a6a8265c844f9ef6548399bc9ea3d8d1e">Switch_charts_</a> += <span class="keyword">new</span> <a class="code" href="namespace_chart_v2.html#a125a51f817f70f74de68944d4e989fc2">Switch_charts</a>(ActiveChart_Switch_charts_);
<a name="l01332"></a>01332         }
<a name="l01333"></a>01333 
<a name="l01338"></a>01338         <span class="keywordtype">void</span> switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> new_frame)
<a name="l01339"></a>01339         {
<a name="l01340"></a>01340             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01341"></a>01341             <span class="keywordtype">int</span> a = Get_Index_Current_workingChart();
<a name="l01342"></a>01342             List&lt;TF&gt; ltf = <span class="keyword">new</span> List&lt;TF&gt;();
<a name="l01343"></a>01343             <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> old_frame = workingCharts[a].Quotes.tf;
<a name="l01344"></a>01344             <span class="keywordflow">if</span> (old_frame == new_frame) <span class="keywordflow">return</span>;
<a name="l01345"></a>01345             <span class="comment">//переключатель</span>
<a name="l01346"></a>01346             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; workingCharts[a].workingForm.Controls.Count; i++)
<a name="l01347"></a>01347             {
<a name="l01348"></a>01348                 <span class="keywordflow">if</span> (workingCharts[a].workingForm.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l01349"></a>01349                 ChartV2.Control c = (ChartV2.Control)workingCharts[a].workingForm.Controls[i];
<a name="l01350"></a>01350 
<a name="l01351"></a>01351                 ltf.Add(c.seriesList[0].legend.frame);
<a name="l01352"></a>01352             }
<a name="l01353"></a>01353             workingCharts[Get_Index_Current_workingChart()].SetChartTF(new_frame);
<a name="l01354"></a>01354 
<a name="l01355"></a>01355             <span class="keywordtype">bool</span> j = <span class="keyword">true</span>;
<a name="l01356"></a>01356             <span class="keywordflow">foreach</span> (<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> tf <span class="keywordflow">in</span> ltf)
<a name="l01357"></a>01357                 <span class="keywordflow">if</span> (tf == new_frame) j = <span class="keyword">false</span>;
<a name="l01358"></a>01358             <span class="keywordflow">if</span> (j) workingCharts[Get_Index_Current_workingChart()].ActiveChart.Switch_charts_ += <span class="keyword">new</span> ChartV2.Switch_charts(ActiveChart_Switch_charts_);
<a name="l01359"></a>01359             <span class="comment">//коррекция надписей на окне, в меню, в табах</span>
<a name="l01360"></a>01360             this.ActiveMdiChild.Text =
<a name="l01361"></a>01361                 this.<a class="code" href="class_skilful_1_1_main_form.html#a105673ee7ff26eba2aafd1440a3e2e09">tabControl</a>.SelectedTab.Text =
<a name="l01362"></a>01362                     windowStripMenuItem.DropDownItems[checkWindowMenuDropChart].Text =
<a name="l01363"></a>01363                         this.ActiveMdiChild.Text.Replace(old_frame.ToString(), new_frame.ToString());
<a name="l01364"></a>01364 
<a name="l01365"></a>01365         }
<a name="l01366"></a>01366 
<a name="l01367"></a>01367 
<a name="l01368"></a>01368         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonH1_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01369"></a>01369         {
<a name="l01370"></a>01370             switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m60);
<a name="l01371"></a>01371             <span class="comment">//if (this.ActiveMdiChild == null) return;</span>
<a name="l01372"></a>01372             <span class="comment">//ShowChart(TF.m60, (TreeNode)this.ActiveMdiChild.Tag);</span>
<a name="l01373"></a>01373         }
<a name="l01374"></a>01374         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonH4_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01375"></a>01375         {
<a name="l01376"></a>01376             switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.m240);
<a name="l01377"></a>01377         }
<a name="l01378"></a>01378         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonD_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01379"></a>01379         {
<a name="l01380"></a>01380             switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Day);
<a name="l01381"></a>01381         }
<a name="l01382"></a>01382         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonW_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01383"></a>01383         {
<a name="l01384"></a>01384             switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Week);
<a name="l01385"></a>01385         }
<a name="l01386"></a>01386         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonM_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01387"></a>01387         {
<a name="l01388"></a>01388             switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Month);
<a name="l01389"></a>01389         }
<a name="l01390"></a>01390         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonQ_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01391"></a>01391         {
<a name="l01392"></a>01392             switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Quarter);
<a name="l01393"></a>01393         }
<a name="l01394"></a>01394         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonY_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01395"></a>01395         {
<a name="l01396"></a>01396             switchTFonActiveChart(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.Year);
<a name="l01397"></a>01397         }
<a name="l01398"></a>01398 
<a name="l01399"></a>01399         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonDSource_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01400"></a>01400         {
<a name="l01401"></a>01401             selectDataSourceToolStripMenuItem_Click(sender, e);
<a name="l01402"></a>01402         }
<a name="l01403"></a>01403 
<a name="l01404"></a>01404         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonSModels_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01405"></a>01405         {
<a name="l01406"></a>01406             SearchModelsToolStripMenuItem_Click(sender, e);
<a name="l01407"></a>01407         }
<a name="l01408"></a>01408 
<a name="l01409"></a>01409         <span class="comment">// ----- установщики свойств меню (кнопки) Search</span>
<a name="l01410"></a>01410         <span class="keyword">private</span> <span class="keywordtype">void</span> Set_Switch_Search_models()
<a name="l01411"></a>01411         {
<a name="l01412"></a>01412             SearchModelsToolStripMenuItem.Enabled = <span class="keyword">true</span>;
<a name="l01413"></a>01413             SearchModelsToolStripMenuItem.Text = <span class="stringliteral">&quot;Search models&quot;</span>;
<a name="l01414"></a>01414             toolStripButtonSModels.Enabled = <span class="keyword">true</span>;
<a name="l01415"></a>01415             toolStripButtonSModels.ToolTipText = <span class="stringliteral">&quot;Search models&quot;</span>;
<a name="l01416"></a>01416             toolStripButtonSModels.Image = <a class="code" href="class_skilful_1_1_properties_1_1_resources.html" title="A strongly-typed resource class, for looking up localized strings, etc.">Resources</a>.play1disabled;
<a name="l01417"></a>01417             toolStripMenuItemClearModels.Enabled = <span class="keyword">true</span>;
<a name="l01418"></a>01418             toolStripMenuItem_Statistic.Enabled = <span class="keyword">true</span>;
<a name="l01419"></a>01419         }
<a name="l01420"></a>01420         <span class="keyword">private</span> <span class="keywordtype">void</span> Set_Switch_Search_Complete()
<a name="l01421"></a>01421         {
<a name="l01422"></a>01422             SearchModelsToolStripMenuItem.Text = <span class="stringliteral">&quot;Search Complete&quot;</span>;
<a name="l01423"></a>01423             SearchModelsToolStripMenuItem.Enabled = <span class="keyword">false</span>;
<a name="l01424"></a>01424             toolStripButtonSModels.Enabled = <span class="keyword">false</span>;
<a name="l01425"></a>01425             toolStripButtonSModels.ToolTipText = <span class="stringliteral">&quot;Search Complete&quot;</span>;
<a name="l01426"></a>01426             toolStripButtonSModels.Image = <a class="code" href="class_skilful_1_1_properties_1_1_resources.html" title="A strongly-typed resource class, for looking up localized strings, etc.">Resources</a>.play1disabled;
<a name="l01427"></a>01427             toolStripMenuItemClearModels.Enabled = <span class="keyword">true</span>;
<a name="l01428"></a>01428             toolStripMenuItem_Statistic.Enabled = <span class="keyword">true</span>;
<a name="l01429"></a>01429         }
<a name="l01430"></a>01430         <span class="keyword">private</span> <span class="keywordtype">void</span> Set_Switch_Stop_Search()
<a name="l01431"></a>01431         {
<a name="l01432"></a>01432             SearchModelsToolStripMenuItem.Enabled = <span class="keyword">true</span>;
<a name="l01433"></a>01433             SearchModelsToolStripMenuItem.Text = <span class="stringliteral">&quot;Stop search&quot;</span>;
<a name="l01434"></a>01434             toolStripButtonSModels.Enabled = <span class="keyword">true</span>;
<a name="l01435"></a>01435             toolStripButtonSModels.ToolTipText = <span class="stringliteral">&quot;Stop search&quot;</span>;
<a name="l01436"></a>01436             toolStripButtonSModels.Image = <a class="code" href="class_skilful_1_1_properties_1_1_resources.html" title="A strongly-typed resource class, for looking up localized strings, etc.">Resources</a>.stop1disabled;
<a name="l01437"></a>01437             toolStripMenuItemClearModels.Enabled = <span class="keyword">false</span>;
<a name="l01438"></a>01438             toolStripMenuItem_Statistic.Enabled = <span class="keyword">false</span>;
<a name="l01439"></a>01439         }
<a name="l01440"></a>01440 
<a name="l01441"></a>01441 
<a name="l01442"></a>01442         <span class="comment">//-------------------------------------------------------------</span>
<a name="l01443"></a>01443 
<a name="l01449"></a>01449         <span class="keyword">private</span> <span class="keywordtype">void</span> mT4ControlToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01450"></a>01450         {
<a name="l01451"></a>01451             MT4control form = <span class="keyword">new</span> MT4control(<a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>);
<a name="l01452"></a>01452             this.AddOwnedForm(form);
<a name="l01453"></a>01453             form.ShowDialog();
<a name="l01454"></a>01454             <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#ae71bed34cc2b0a3aab2f9e9502993fc0">getDigits</a>();
<a name="l01455"></a>01455             <a class="code" href="class_skilful_1_1_main_form.html#aa8b3b30ac92e8f3b26ab2eca5e88f163">mt4</a>.<a class="code" href="class_skilful_1_1_data_1_1_m_tproxy.html#a3588b6e2a02b1b9a9aab844d03f5d404">mt4init</a>();
<a name="l01456"></a>01456             <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;MT4Path&quot;</span>).Length &gt; 0)
<a name="l01457"></a>01457                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#a6273690345f922d510ad019511571b85">DataManager</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_m_data_manager.html#a612f72a1f9a730eca54f5b998ce72ca4">SetNewDataSourceFilePath</a>(<span class="stringliteral">&quot;MT4&quot;</span>, XMLConfig.Get(<span class="stringliteral">&quot;MT4Path&quot;</span>) + <span class="stringliteral">&quot;\\experts\\files\\&quot;</span>))
<a name="l01458"></a>01458                     <a class="code" href="class_skilful_1_1_main_form.html#a2b92318852be50fc52e5cd3b660444c7">RefreshSymList</a>(<span class="stringliteral">&quot;MT4&quot;</span>);
<a name="l01459"></a>01459         }
<a name="l01460"></a>01460 
<a name="l01461"></a>01461         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripTextBox1_TextChanged(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01462"></a>01462         {
<a name="l01463"></a>01463             <span class="keywordflow">try</span>
<a name="l01464"></a>01464             {
<a name="l01465"></a>01465                 Skilful.ModelManager.Options.VisibleSteps = Int32.Parse(((ToolStripTextBox)sender).Text);
<a name="l01466"></a>01466                 <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01467"></a>01467                 ChartV2.Control c;
<a name="l01468"></a>01468                 c = (ChartV2.Control)workingCharts[Get_Index_Current_workingChart()].workingForm.Controls[0];
<a name="l01469"></a>01469                 c.ReDrawEveryThing(<span class="keyword">false</span>);
<a name="l01470"></a>01470 
<a name="l01471"></a>01471             }
<a name="l01472"></a>01472             <span class="keywordflow">catch</span> (FormatException)
<a name="l01473"></a>01473             {
<a name="l01474"></a>01474                 MessageBox.Show(<span class="stringliteral">&quot;Введите числовое значение от 1 до 3!!!&quot;</span>);
<a name="l01475"></a>01475             }
<a name="l01476"></a>01476 
<a name="l01477"></a>01477         }
<a name="l01478"></a>01478 
<a name="l01479"></a>01479         <span class="comment">//-------------------------------------------------------------</span>
<a name="l01480"></a>01480         <span class="keyword">private</span> <span class="keywordtype">void</span> removeAllToolsToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01481"></a>01481         {
<a name="l01482"></a>01482             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01483"></a>01483             <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01484"></a>01484             ChartV2.Control c = (ChartV2.Control)workingCharts[i].ActiveChart;
<a name="l01485"></a>01485             c.RemoveAllGraphicalTools();
<a name="l01486"></a>01486             c.ReDrawEveryThing(<span class="keyword">false</span>);
<a name="l01487"></a>01487         }
<a name="l01488"></a>01488 
<a name="l01489"></a>01489         <span class="keyword">private</span> <span class="keywordtype">void</span> notifyIcon1_MouseDoubleClick(<span class="keywordtype">object</span> sender, MouseEventArgs e)
<a name="l01490"></a>01490         {
<a name="l01491"></a>01491             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.Visible == <span class="keyword">true</span>) <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.Hide();
<a name="l01492"></a>01492             <span class="keywordflow">else</span> <a class="code" href="class_skilful_1_1_main_form.html#ab9f7de5cce823f65c5fe486a156fa0e2">MT4messagesForm</a>.Show();
<a name="l01493"></a>01493         }
<a name="l01494"></a>01494 
<a name="l01495"></a>01495         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonSkipScaling_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01496"></a>01496         {
<a name="l01497"></a>01497             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01498"></a>01498             <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01499"></a>01499             ChartV2.Control c = (ChartV2.Control)workingCharts[i].ActiveChart;
<a name="l01500"></a>01500             c.skipScalingToolStripMenuItem_Click(sender, e);
<a name="l01501"></a>01501         }
<a name="l01502"></a>01502 
<a name="l01503"></a>01503         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripButtonRemoveAll_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01504"></a>01504         {
<a name="l01505"></a>01505             removeAllToolsToolStripMenuItem_Click(sender, e);
<a name="l01506"></a>01506         }
<a name="l01507"></a>01507 
<a name="l01508"></a>01508         [System.Runtime.InteropServices.DllImport(<span class="stringliteral">&quot;gdi32.dll&quot;</span>)]
<a name="l01509"></a>01509         <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">extern</span> <span class="keywordtype">long</span> <a class="code" href="class_skilful_1_1_main_form.html#a4790cd2a859759e4cc38af5e1d5c443c">BitBlt</a>(IntPtr hdcDest, <span class="keywordtype">int</span> nXDest, <span class="keywordtype">int</span> nYDest, <span class="keywordtype">int</span> nWidth, <span class="keywordtype">int</span> nHeight, IntPtr hdcSrc, <span class="keywordtype">int</span> nXSrc, <span class="keywordtype">int</span> nYSrc, <span class="keywordtype">int</span> dwRop);
<a name="l01510"></a>01510 
<a name="l01511"></a>01511         Bitmap memoryImage;
<a name="l01512"></a>01512         <span class="keyword">private</span> Bitmap CaptureScreen(Object o, Size s, <span class="keywordtype">string</span> ss)
<a name="l01513"></a>01513         {
<a name="l01514"></a>01514 
<a name="l01515"></a>01515             <a class="code" href="class_skilful_1_1_main_form.html#a8d5bb0b2aa64a79c4f5e4f6318ce161b">MainForm</a> f;
<a name="l01516"></a>01516             ChartV2.Control c;
<a name="l01517"></a>01517             Bitmap memoryImage;
<a name="l01518"></a>01518             Graphics mygraphics, g;
<a name="l01519"></a>01519             Image img;
<a name="l01520"></a>01520             <span class="comment">// -------- </span>
<a name="l01521"></a>01521             <span class="keywordtype">int</span> cW, cH, c_gW, c_gH;
<a name="l01522"></a>01522             cW = cH = c_gW = c_gH = 0;
<a name="l01523"></a>01523             <span class="comment">// --------</span>
<a name="l01524"></a>01524 
<a name="l01525"></a>01525             <span class="keywordflow">if</span> (o is <a class="code" href="class_skilful_1_1_main_form.html#a8d5bb0b2aa64a79c4f5e4f6318ce161b">MainForm</a>)
<a name="l01526"></a>01526             {
<a name="l01527"></a>01527                 f = (MainForm)o;
<a name="l01528"></a>01528                 mygraphics = f.CreateGraphics();
<a name="l01529"></a>01529                 memoryImage = <span class="keyword">new</span> Bitmap(f.Width, f.Height, mygraphics);
<a name="l01530"></a>01530             }
<a name="l01531"></a>01531             <span class="keywordflow">else</span>
<a name="l01532"></a>01532             {
<a name="l01533"></a>01533                 c = (ChartV2.Control)o;
<a name="l01534"></a>01534                 mygraphics = c.CreateGraphics();
<a name="l01535"></a>01535                 memoryImage = <span class="keyword">new</span> Bitmap(c.Width, c.Height, mygraphics);
<a name="l01536"></a>01536                 <span class="comment">// ----------------- </span>
<a name="l01537"></a>01537                 cW = c.Width; cH = c.Height;
<a name="l01538"></a>01538                 c_gW = c.gridSplitter.LeftAxisWidth + 1; c_gH = c.gridSplitter.TopAxisHeight + 1;
<a name="l01539"></a>01539 
<a name="l01540"></a>01540             }
<a name="l01541"></a>01541             Graphics memoryGraphics = Graphics.FromImage(memoryImage);
<a name="l01542"></a>01542             IntPtr dc1 = mygraphics.GetHdc();
<a name="l01543"></a>01543             IntPtr dc2 = memoryGraphics.GetHdc();
<a name="l01544"></a>01544             <a class="code" href="class_skilful_1_1_main_form.html#a4790cd2a859759e4cc38af5e1d5c443c">BitBlt</a>(dc2, 0, 0, this.ClientRectangle.Width, <span class="keyword">this</span>.ClientRectangle.Height, dc1, 0, 0, 13369376);
<a name="l01545"></a>01545             mygraphics.ReleaseHdc(dc1);
<a name="l01546"></a>01546             memoryGraphics.ReleaseHdc(dc2);
<a name="l01547"></a>01547             memoryGraphics.Dispose();
<a name="l01548"></a>01548             <span class="keywordflow">if</span> ((o is ChartV2.Control) &amp;&amp; (ss == <span class="stringliteral">&quot;Save Light Chart As Image&quot;</span>))
<a name="l01549"></a>01549             {
<a name="l01550"></a>01550                 img = (Bitmap)memoryImage.Clone();
<a name="l01551"></a>01551                 Bitmap newbmp = <span class="keyword">new</span> Bitmap(cW - c_gW, cH - c_gH);
<a name="l01552"></a>01552                 g = Graphics.FromImage(newbmp);
<a name="l01553"></a>01553                 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
<a name="l01554"></a>01554                 g.DrawImage(img, -c_gW, -c_gH, cW, cH);
<a name="l01555"></a>01555                 <span class="keywordflow">return</span> newbmp;
<a name="l01556"></a>01556             }
<a name="l01557"></a>01557 
<a name="l01558"></a>01558 
<a name="l01559"></a>01559             <span class="keywordflow">return</span> memoryImage;
<a name="l01560"></a>01560         }
<a name="l01561"></a>01561 
<a name="l01562"></a>01562         <span class="keyword">private</span> <span class="keywordtype">void</span> printToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01563"></a>01563         {
<a name="l01564"></a>01564             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01565"></a>01565             <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01566"></a>01566             Size s = <span class="keyword">new</span> Size(0, 0);
<a name="l01567"></a>01567             ChartV2.Control f = (ChartV2.Control)workingCharts[i].ActiveChart;
<a name="l01568"></a>01568             f.Refresh();
<a name="l01569"></a>01569             memoryImage = CaptureScreen(f, s, <span class="stringliteral">&quot;&quot;</span>);
<a name="l01570"></a>01570             PrintDocument printDoc = <span class="keyword">new</span> PrintDocument();
<a name="l01571"></a>01571             printDialog1.Document = printDoc;
<a name="l01572"></a>01572             <span class="keywordflow">if</span> (printDialog1.ShowDialog() != DialogResult.Cancel)
<a name="l01573"></a>01573             {
<a name="l01574"></a>01574                 <span class="keywordflow">if</span> (printDialog1.PrintToFile)
<a name="l01575"></a>01575                 {
<a name="l01576"></a>01576                     printDialog1.PrinterSettings.PrintFileName = Convert.ToString(Directory.GetCurrentDirectory()) + <span class="stringliteral">&quot;\\&quot;</span> + workingCharts[i].workingForm.Text.Substring(workingCharts[i].workingForm.Text.IndexOf(<span class="charliteral">&#39;:&#39;</span>) + 1) + <span class="stringliteral">&quot;.png&quot;</span>;
<a name="l01577"></a>01577                     <span class="keywordflow">if</span> (File.Exists(printDialog1.PrinterSettings.PrintFileName))
<a name="l01578"></a>01578                         <span class="keywordflow">if</span> (MessageBox.Show(<span class="stringliteral">&quot;File &quot;</span> + workingCharts[i].workingForm.Text + <span class="stringliteral">&quot; already exists.\n Rewrite?&quot;</span>, <span class="stringliteral">&quot;Warning&quot;</span>, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
<a name="l01579"></a>01579                             <span class="keywordflow">return</span>;
<a name="l01580"></a>01580                     memoryImage.Save(printDialog1.PrinterSettings.PrintFileName, System.Drawing.Imaging.ImageFormat.Png);
<a name="l01581"></a>01581                     <span class="keywordflow">return</span>;
<a name="l01582"></a>01582                 }
<a name="l01583"></a>01583 
<a name="l01584"></a>01584                 printDoc.PrintPage += <span class="keyword">new</span> PrintPageEventHandler(printDoc_PrintPage);
<a name="l01585"></a>01585                 printDoc.Print();
<a name="l01586"></a>01586             }
<a name="l01587"></a>01587         }
<a name="l01588"></a>01588 
<a name="l01589"></a>01589         <span class="keyword">private</span> <span class="keywordtype">void</span> printDoc_PrintPage(System.Object sender, System.Drawing.Printing.PrintPageEventArgs e)
<a name="l01590"></a>01590         {
<a name="l01591"></a>01591             Size s = <span class="keyword">new</span> Size();
<a name="l01592"></a>01592             <span class="keywordtype">float</span> x, y;
<a name="l01593"></a>01593             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01594"></a>01594             ChartV2.Control f = (ChartV2.Control)workingCharts[i].ActiveChart;
<a name="l01595"></a>01595             f.Refresh();
<a name="l01596"></a>01596             Font font = <span class="keyword">new</span> Font(<span class="stringliteral">&quot;Arial&quot;</span>, 10, FontStyle.Italic);
<a name="l01597"></a>01597             y = font.GetHeight(e.Graphics);
<a name="l01598"></a>01598             s.Height = e.MarginBounds.Height + e.MarginBounds.Y - (int)y;
<a name="l01599"></a>01599             s.Width = e.MarginBounds.Width + e.MarginBounds.X;
<a name="l01600"></a>01600             <span class="keywordtype">int</span> H = f.Height;
<a name="l01601"></a>01601             <span class="keywordtype">int</span> W = f.Width;
<a name="l01602"></a>01602             f.Dock = DockStyle.None;
<a name="l01603"></a>01603             f.Height = H;
<a name="l01604"></a>01604             f.Width = W;
<a name="l01605"></a>01605             <span class="keywordflow">if</span> (f.Width &gt; s.Width) f.Width = s.Width;
<a name="l01606"></a>01606             <span class="keywordflow">if</span> (f.Height &gt; s.Height) f.Height = s.Height;
<a name="l01607"></a>01607             memoryImage = CaptureScreen(f, s, <span class="stringliteral">&quot;&quot;</span>);
<a name="l01608"></a>01608             f.Height = H;
<a name="l01609"></a>01609             f.Width = W;
<a name="l01610"></a>01610             f.Dock = DockStyle.Fill;
<a name="l01611"></a>01611             x = ((e.MarginBounds.Width + e.MarginBounds.X) - memoryImage.Width) / 2;
<a name="l01612"></a>01612             e.Graphics.DrawString(workingCharts[i].workingForm.Text, font, Brushes.Black, x, 0);
<a name="l01613"></a>01613             e.Graphics.DrawImage(memoryImage, x, y);
<a name="l01614"></a>01614         }
<a name="l01615"></a>01615 
<a name="l01616"></a>01616         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItemSaveImage_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01617"></a>01617         {
<a name="l01618"></a>01618             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01619"></a>01619             <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01620"></a>01620             Size s = <span class="keyword">new</span> Size(0, 0);
<a name="l01621"></a>01621             saveFileDialogImage.FileName = workingCharts[i].workingForm.Text.Substring(workingCharts[i].workingForm.Text.IndexOf(<span class="charliteral">&#39;:&#39;</span>) + 1);
<a name="l01622"></a>01622             saveFileDialogImage.Filter = <span class="stringliteral">&quot;PNG (*.png)| *.png&quot;</span>;
<a name="l01623"></a>01623             <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;Capture_FileSavePath&quot;</span>).Length &gt; 0) saveFileDialogImage.InitialDirectory = XMLConfig.Get(<span class="stringliteral">&quot;Capture_FileSavePath&quot;</span>);
<a name="l01624"></a>01624 
<a name="l01625"></a>01625             ChartV2.Control f = (ChartV2.Control)workingCharts[i].ActiveChart;
<a name="l01626"></a>01626             f.Refresh();
<a name="l01627"></a>01627             memoryImage = CaptureScreen(f, s, sender.ToString());
<a name="l01628"></a>01628 
<a name="l01629"></a>01629             <span class="keywordflow">if</span> (saveFileDialogImage.ShowDialog() == DialogResult.OK)
<a name="l01630"></a>01630             {
<a name="l01631"></a>01631                 memoryImage.Save(saveFileDialogImage.FileName, System.Drawing.Imaging.ImageFormat.Png);
<a name="l01632"></a>01632                 XMLConfig.Set(<span class="stringliteral">&quot;Capture_FileSavePath&quot;</span>, Path.GetDirectoryName(saveFileDialogImage.FileName));
<a name="l01633"></a>01633             }
<a name="l01634"></a>01634 
<a name="l01635"></a>01635         }
<a name="l01636"></a>01636 
<a name="l01637"></a>01637         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItemSaveFImage_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01638"></a>01638         {
<a name="l01639"></a>01639             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01640"></a>01640             <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01641"></a>01641             Size s = <span class="keyword">new</span> Size(0, 0);
<a name="l01642"></a>01642             MainForm mf = <span class="keyword">this</span>;
<a name="l01643"></a>01643             mf.Refresh();
<a name="l01644"></a>01644             memoryImage = CaptureScreen(mf, s, <span class="stringliteral">&quot;&quot;</span>);
<a name="l01645"></a>01645             saveFileDialogImage.FileName = <span class="stringliteral">&quot;Working Form &quot;</span> + workingCharts[i].workingForm.Text.Substring(workingCharts[i].workingForm.Text.IndexOf(<span class="charliteral">&#39;:&#39;</span>) + 1);
<a name="l01646"></a>01646             saveFileDialogImage.Filter = <span class="stringliteral">&quot;PNG (*.png)| *.png&quot;</span>;
<a name="l01647"></a>01647             <span class="keywordflow">if</span> (XMLConfig.Get(<span class="stringliteral">&quot;Capture_FileSavePath&quot;</span>).Length &gt; 0) saveFileDialogImage.InitialDirectory = XMLConfig.Get(<span class="stringliteral">&quot;Capture_FileSavePath&quot;</span>);
<a name="l01648"></a>01648             <span class="keywordflow">if</span> (saveFileDialogImage.ShowDialog() == DialogResult.OK)
<a name="l01649"></a>01649             {
<a name="l01650"></a>01650                 memoryImage.Save(saveFileDialogImage.FileName, System.Drawing.Imaging.ImageFormat.Png);
<a name="l01651"></a>01651                 XMLConfig.Set(<span class="stringliteral">&quot;Capture_FileSavePath&quot;</span>, saveFileDialogImage.FileName);
<a name="l01652"></a>01652             }
<a name="l01653"></a>01653 
<a name="l01654"></a>01654         }
<a name="l01655"></a>01655 
<a name="l01656"></a>01656         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItem2_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01657"></a>01657         {
<a name="l01658"></a>01658             QuikControl quikcontrol = <span class="keyword">new</span> QuikControl();
<a name="l01659"></a>01659             quikcontrol.ShowDialog();
<a name="l01660"></a>01660         }
<a name="l01661"></a>01661 
<a name="l01662"></a>01662         <span class="keyword">private</span> <span class="keywordtype">void</span> MainForm_FormClosing(<span class="keywordtype">object</span> sender, FormClosingEventArgs e)
<a name="l01663"></a>01663         {
<a name="l01664"></a>01664             <a class="code" href="class_skilful_1_1_main_form.html#a07bab1543d78a2c30e51bdfda01eb739">Save_parameters</a>.Clear();
<a name="l01665"></a>01665             XMLConfig.Set(<span class="stringliteral">&quot;LoadLastSession&quot;</span>, toolStripMenuItemLLS.Checked.ToString());
<a name="l01666"></a>01666             XMLConfig.Set(<span class="stringliteral">&quot;ShowHypotheticalTarget&quot;</span>, toolStripMenuItemSHT.Checked.ToString());
<a name="l01667"></a>01667             XMLConfig.Set(<span class="stringliteral">&quot;ShowIndexCheckedModel&quot;</span>, toolStripMenuItemSICM.Checked.ToString());
<a name="l01668"></a>01668             XMLConfig.Set(<span class="stringliteral">&quot;MaxBarInChart&quot;</span>, toolStripComboBoxMBiC.Text);
<a name="l01669"></a>01669             XMLConfig.Set(<span class="stringliteral">&quot;ShowSourceName&quot;</span>, toolStripMenuItemSDSN.Checked.ToString());
<a name="l01670"></a>01670             XMLConfig.Set(<span class="stringliteral">&quot;CurrentSample&quot;</span>, Sample.currentSample);
<a name="l01671"></a>01671         }
<a name="l01672"></a>01672 
<a name="l01673"></a>01673 
<a name="l01674"></a>01674         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItemMBiC_DropDownClosed(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01675"></a>01675         {
<a name="l01676"></a>01676             <span class="keywordtype">int</span> i;
<a name="l01677"></a>01677             <span class="keywordflow">try</span>
<a name="l01678"></a>01678             {
<a name="l01679"></a>01679                 i = Convert.ToInt32(toolStripComboBoxMBiC.Text);
<a name="l01680"></a>01680                 <span class="keywordflow">if</span> ((i &gt;= 100) &amp; (i &lt;= 1000) &amp; (i != ChartV2.Data.ViewPort.maxBarInChart))
<a name="l01681"></a>01681                 {
<a name="l01682"></a>01682                     ChartV2.Data.ViewPort.maxBarInChart = i;
<a name="l01683"></a>01683                     ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a52c907f945d2dfa8b3b2e57aaf4f04a3">seriesList</a>[0].viewPort.update();
<a name="l01684"></a>01684                     ActiveChart.<a class="code" href="class_chart_v2_1_1_control.html#a362614dd2d0df09514f58d6a12d5be0d">ReDrawEveryThing</a>(<span class="keyword">true</span>);
<a name="l01685"></a>01685                 }
<a name="l01686"></a>01686                 <span class="keywordflow">else</span> toolStripComboBoxMBiC.Text = ChartV2.Data.ViewPort.maxBarInChart.ToString();
<a name="l01687"></a>01687             }
<a name="l01688"></a>01688             <span class="keywordflow">catch</span>
<a name="l01689"></a>01689             {
<a name="l01690"></a>01690                 toolStripComboBoxMBiC.Text = ChartV2.Data.ViewPort.maxBarInChart.ToString();
<a name="l01691"></a>01691             }
<a name="l01692"></a>01692 
<a name="l01693"></a>01693 
<a name="l01694"></a>01694         }
<a name="l01695"></a>01695 
<a name="l01696"></a>01696 
<a name="l01697"></a>01697         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripComboBoxMBiC_KeyUp(<span class="keywordtype">object</span> sender, KeyEventArgs e)
<a name="l01698"></a>01698         {
<a name="l01699"></a>01699             <span class="keywordflow">if</span> (e.KeyCode == Keys.Enter)
<a name="l01700"></a>01700             {
<a name="l01701"></a>01701                 this.toolsToolStripMenuItem.HideDropDown();
<a name="l01702"></a>01702                 toolStripMenuItemMBiC_DropDownClosed(sender, e);
<a name="l01703"></a>01703             }
<a name="l01704"></a>01704 
<a name="l01705"></a>01705         }
<a name="l01706"></a>01706 
<a name="l01707"></a>01707         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItem_Statistic_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01708"></a>01708         {
<a name="l01709"></a>01709             <span class="keywordflow">if</span> (this.ActiveMdiChild == null) <span class="keywordflow">return</span>;
<a name="l01710"></a>01710             <a class="code" href="class_skilful_1_1_statistics_1_1_stat_calc.html">StatCalc</a> stat = <span class="keyword">new</span> <a class="code" href="class_skilful_1_1_statistics_1_1_stat_calc.html">StatCalc</a>();
<a name="l01711"></a>01711             stat.<a class="code" href="class_skilful_1_1_statistics_1_1_stat_calc.html#a52ba8c834c6471a8c0cb290fd2f74355">Describe</a>(workingCharts[Get_Index_Current_workingChart()]);
<a name="l01712"></a>01712         }
<a name="l01713"></a>01713 
<a name="l01714"></a>01714 
<a name="l01715"></a>01715         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItemSaveLImage_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01716"></a>01716         {
<a name="l01717"></a>01717             toolStripMenuItemSaveImage_Click(sender, e);
<a name="l01718"></a>01718         }
<a name="l01719"></a>01719 
<a name="l01720"></a>01720         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItemSHT_CheckedChanged(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01721"></a>01721         {
<a name="l01722"></a>01722             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01723"></a>01723             <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01724"></a>01724             <a class="code" href="class_skilful_1_1_main_form.html#a05cfd725c1ccecf8b443cfdf793804fc">ShowHypotheticalTarget</a> = <span class="keyword">false</span>;
<a name="l01725"></a>01725             <span class="keywordflow">if</span> (toolStripMenuItemSHT.Checked == <span class="keyword">true</span>) <a class="code" href="class_skilful_1_1_main_form.html#a05cfd725c1ccecf8b443cfdf793804fc">ShowHypotheticalTarget</a> = <span class="keyword">true</span>;
<a name="l01726"></a>01726             ChartV2.Control c = (ChartV2.Control)workingCharts[i].ActiveChart;
<a name="l01727"></a>01727             c.ReDrawEveryThing(<span class="keyword">false</span>);
<a name="l01728"></a>01728         }
<a name="l01729"></a>01729 
<a name="l01730"></a>01730         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItemSICM_CheckedChanged(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01731"></a>01731         {
<a name="l01732"></a>01732             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01733"></a>01733             <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01734"></a>01734             <a class="code" href="class_skilful_1_1_main_form.html#a8e7b08df82dbf48017f247408aff8865">ShowIndexCheckedModel</a> = <span class="keyword">false</span>;
<a name="l01735"></a>01735             <span class="keywordflow">if</span> (toolStripMenuItemSICM.Checked == <span class="keyword">true</span>) <a class="code" href="class_skilful_1_1_main_form.html#a8e7b08df82dbf48017f247408aff8865">ShowIndexCheckedModel</a> = <span class="keyword">true</span>;
<a name="l01736"></a>01736             ChartV2.Control c = (ChartV2.Control)workingCharts[i].ActiveChart;
<a name="l01737"></a>01737             c.ReDrawEveryThing(<span class="keyword">false</span>);
<a name="l01738"></a>01738         }
<a name="l01739"></a>01739 
<a name="l01745"></a>01745         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItem_ClearModels_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01746"></a>01746         {
<a name="l01747"></a>01747             <span class="keywordflow">if</span> (this.ActiveMdiChild != null)
<a name="l01748"></a>01748             {
<a name="l01749"></a>01749                 <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01750"></a>01750                 <span class="keywordflow">if</span> (i != -1)
<a name="l01751"></a>01751                 {
<a name="l01752"></a>01752                     <span class="keywordflow">if</span> (workingCharts[i].flagSerch)
<a name="l01753"></a>01753                     {
<a name="l01754"></a>01754                         workingCharts[i].ClearModels();
<a name="l01755"></a>01755                         Set_Switch_Search_models();
<a name="l01756"></a>01756                         workingCharts[i].flagSerch = <span class="keyword">false</span>;
<a name="l01757"></a>01757                     }
<a name="l01758"></a>01758                 }
<a name="l01759"></a>01759             }
<a name="l01760"></a>01760         }
<a name="l01761"></a>01761 
<a name="l01762"></a>01762         <span class="keyword">private</span> <span class="keywordtype">void</span> enableByTrendFiltrationToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01763"></a>01763         {
<a name="l01764"></a>01764             ModelManager.Options.EnableFiltrationByTrend = ((ToolStripMenuItem)sender).Checked;
<a name="l01765"></a>01765         }
<a name="l01766"></a>01766 
<a name="l01767"></a>01767         <span class="keyword">private</span> <span class="keywordtype">void</span> enableFanFiltrationToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01768"></a>01768         {
<a name="l01769"></a>01769             ModelManager.Options.EnableFiltrationFan = ((ToolStripMenuItem)sender).Checked;
<a name="l01770"></a>01770         }
<a name="l01771"></a>01771 
<a name="l01772"></a>01772         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuItemSDSN_CheckedChanged(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01773"></a>01773         {
<a name="l01774"></a>01774             <a class="code" href="class_skilful_1_1_main_form.html#a0f485248512a37edd4503375da1f8e82">ShowSourceName</a> = <span class="keyword">false</span>;
<a name="l01775"></a>01775             <span class="keywordflow">if</span> (toolStripMenuItemSDSN.Checked == <span class="keyword">true</span>) <a class="code" href="class_skilful_1_1_main_form.html#a0f485248512a37edd4503375da1f8e82">ShowSourceName</a> = <span class="keyword">true</span>;
<a name="l01776"></a>01776         }
<a name="l01777"></a>01777     
<a name="l01778"></a>01778         <span class="keyword">private</span> <span class="keywordtype">void</span> fileToolStripMenuItem_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01779"></a>01779         {
<a name="l01780"></a>01780             toolStripMenuSaveSample.Enabled = <span class="keyword">true</span>;
<a name="l01781"></a>01781             toolStripMenuDefault.Enabled = <span class="keyword">true</span>;
<a name="l01782"></a>01782             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 5; i &lt; toolStripMenuSample.DropDownItems.Count; i++)
<a name="l01783"></a>01783             {  ToolStripMenuItem t = (ToolStripMenuItem)toolStripMenuSample.DropDownItems[i];
<a name="l01784"></a>01784                 t.Enabled = <span class="keyword">true</span>; }
<a name="l01785"></a>01785             <span class="keywordflow">if</span> (Get_Index_Current_workingChart() == -1)
<a name="l01786"></a>01786             {
<a name="l01787"></a>01787                 toolStripMenuSaveSample.Enabled = <span class="keyword">false</span>;
<a name="l01788"></a>01788                 toolStripMenuDefault.Enabled = <span class="keyword">false</span>;
<a name="l01789"></a>01789                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 5; j &lt; toolStripMenuSample.DropDownItems.Count; j++)
<a name="l01790"></a>01790                 { ToolStripMenuItem t = (ToolStripMenuItem)toolStripMenuSample.DropDownItems[j];
<a name="l01791"></a>01791                     t.Enabled = <span class="keyword">false</span>;}
<a name="l01792"></a>01792             }
<a name="l01793"></a>01793 
<a name="l01794"></a>01794 
<a name="l01795"></a>01795         }
<a name="l01796"></a>01796  <span class="comment">//=========== Работа с меню File --&gt; Sample =====================================</span>
<a name="l01797"></a>01797         ToolStripMenuItem sampleMenuDrop;
<a name="l01798"></a>01798         readonly <span class="keyword">private</span> <span class="keywordtype">int</span> CountDropMenu = 5;
<a name="l01799"></a>01799         <span class="keyword">private</span> <span class="keywordtype">void</span> Add_menuItem_menuSample(<span class="keywordtype">string</span> nameSample, <span class="keywordtype">bool</span> Save_Remove)
<a name="l01800"></a>01800         {
<a name="l01801"></a>01801             sampleMenuDrop = <span class="keyword">new</span> ToolStripMenuItem();
<a name="l01802"></a>01802             sampleMenuDrop.Name = sampleMenuDrop.Text =  nameSample;
<a name="l01803"></a>01803             sampleMenuDrop.Click += <span class="keyword">new</span> EventHandler(sampleMenuDrop_Click);
<a name="l01804"></a>01804             <span class="keywordflow">if</span> (Save_Remove)
<a name="l01805"></a>01805             {             
<a name="l01806"></a>01806                 toolStripMenuSample.DropDownItems.Add(sampleMenuDrop);
<a name="l01807"></a>01807                 <span class="keywordflow">if</span> (nameSample == Sample.currentSample) sampleMenuDrop.Checked = <span class="keyword">true</span>;
<a name="l01808"></a>01808             }
<a name="l01809"></a>01809             <span class="keywordflow">else</span> toolStripMenuRemoveSample.DropDownItems.Add(sampleMenuDrop);
<a name="l01810"></a>01810          }
<a name="l01811"></a>01811 
<a name="l01812"></a>01812         <span class="keywordtype">void</span> sampleMenuDrop_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01813"></a>01813         {
<a name="l01814"></a>01814            ToolStripMenuItem tsm = (ToolStripMenuItem)sender;
<a name="l01815"></a>01815             <span class="keywordflow">if</span> (tsm.OwnerItem.Name == <span class="stringliteral">&quot;toolStripMenuRemoveSample&quot;</span>)
<a name="l01816"></a>01816             {
<a name="l01817"></a>01817                 <span class="keywordflow">if</span> (tsm.Name == Sample.currentSample)
<a name="l01818"></a>01818                 { MessageBox.Show(<span class="stringliteral">&quot;You can&#39;t remove a current samle. \n Please, switch sample and try again.&quot;</span>, <span class="stringliteral">&quot;Attention.&quot;</span>, MessageBoxButtons.OK, MessageBoxIcon.Information); <span class="keywordflow">return</span>; }
<a name="l01819"></a>01819                 <span class="keywordflow">if</span> (MessageBox.Show(<span class="stringliteral">&quot;Sample &quot;</span> + <span class="stringliteral">&quot;&#39;&quot;</span> + tsm.Name + <span class="stringliteral">&quot;&#39;&quot;</span> + <span class="stringliteral">&quot; will be removed!&quot;</span>, <span class="stringliteral">&quot;Warning.&quot;</span>, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel) <span class="keywordflow">return</span>;
<a name="l01820"></a>01820                 {
<a name="l01821"></a>01821                     toolStripMenuRemoveSample.DropDownItems.Remove(tsm);
<a name="l01822"></a>01822                     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; toolStripMenuSample.DropDownItems.Count; i++)
<a name="l01823"></a>01823                         <span class="keywordflow">if</span> (toolStripMenuSample.DropDownItems[i] is ToolStripMenuItem)
<a name="l01824"></a>01824                             <span class="keywordflow">if</span> (toolStripMenuSample.DropDownItems[i].Name == tsm.Name)
<a name="l01825"></a>01825                             {
<a name="l01826"></a>01826                                 toolStripMenuSample.DropDownItems.Remove(toolStripMenuSample.DropDownItems[i]);
<a name="l01827"></a>01827                                 <span class="keywordflow">try</span> { File.Delete(Application.StartupPath + <span class="stringliteral">&quot;\\&quot;</span> + tsm.Name + <span class="stringliteral">&quot;.smp&quot;</span>); }
<a name="l01828"></a>01828                                 <span class="keywordflow">catch</span> (Exception ex) { MessageBox.Show(ex.Message); }
<a name="l01829"></a>01829                                 <span class="keywordflow">return</span>;
<a name="l01830"></a>01830                             }
<a name="l01831"></a>01831                 }
<a name="l01832"></a>01832             }
<a name="l01833"></a>01833             <span class="keywordflow">if</span> (tsm.OwnerItem.Name == <span class="stringliteral">&quot;toolStripMenuSample&quot;</span>)
<a name="l01834"></a>01834                 
<a name="l01835"></a>01835                 {
<a name="l01836"></a>01836                     <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01837"></a>01837                     <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01838"></a>01838                     MenuSampleCheckedClear();
<a name="l01839"></a>01839                     tsm.Checked = <span class="keyword">true</span>;
<a name="l01840"></a>01840                     toolStripMenuDefault.Checked = <span class="keyword">false</span>;
<a name="l01841"></a>01841                     Sample.currentSample = tsm.Name;
<a name="l01842"></a>01842                     SetSample(Application.StartupPath + <span class="stringliteral">&quot;\\&quot;</span> + Sample.currentSample + <span class="stringliteral">&quot;.smp&quot;</span>);                    
<a name="l01843"></a>01843                 }
<a name="l01844"></a>01844         }
<a name="l01845"></a>01845            
<a name="l01846"></a>01846         <span class="keyword">private</span> <span class="keywordtype">void</span> MenuSampleCheckedClear ()
<a name="l01847"></a>01847         {
<a name="l01848"></a>01848             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = CountDropMenu; j &lt; toolStripMenuSample.DropDownItems.Count; j++)
<a name="l01849"></a>01849                   ((ToolStripMenuItem)toolStripMenuSample.DropDownItems[j]).Checked = <span class="keyword">false</span>; 
<a name="l01850"></a>01850                         
<a name="l01851"></a>01851                     
<a name="l01852"></a>01852         }
<a name="l01853"></a>01853 
<a name="l01854"></a>01854         <span class="keyword">private</span> <span class="keywordtype">void</span> SetSample(<span class="keywordtype">string</span> fileName)
<a name="l01855"></a>01855         {
<a name="l01856"></a>01856 
<a name="l01857"></a>01857             <span class="keywordflow">if</span> (File.Exists(fileName))
<a name="l01858"></a>01858                 <span class="keywordflow">try</span>
<a name="l01859"></a>01859                 {
<a name="l01860"></a>01860                     BinaryFormatter formatter = <span class="keyword">new</span> BinaryFormatter();
<a name="l01861"></a>01861                     <span class="keyword">using</span> (Stream stream = File.Open(fileName, FileMode.Open, FileAccess.Read))
<a name="l01862"></a>01862                     {
<a name="l01863"></a>01863                         <span class="keywordflow">if</span> (stream.Length == 0) <span class="keywordflow">return</span>;
<a name="l01864"></a>01864                         <span class="keywordflow">if</span> (Get_Index_Current_workingChart() != -1)
<a name="l01865"></a>01865                         {
<a name="l01866"></a>01866                             ChartV2.Control c = ActiveChart;
<a name="l01867"></a>01867                             <a class="code" href="class_skilful_1_1_main_form.html#a064e5300891d789af659ec3b3ca7a541">smp</a> = <span class="keyword">new</span> Sample((Sample)formatter.Deserialize(stream), c);
<a name="l01868"></a>01868                             stream.Close();
<a name="l01869"></a>01869                             RefreshSample(c);
<a name="l01870"></a>01870                         }
<a name="l01871"></a>01871                         <span class="keywordflow">else</span> <a class="code" href="class_skilful_1_1_main_form.html#a064e5300891d789af659ec3b3ca7a541">smp</a> = <span class="keyword">new</span> Sample((Sample)formatter.Deserialize(stream));
<a name="l01872"></a>01872                     }
<a name="l01873"></a>01873                 }
<a name="l01874"></a>01874                 <span class="keywordflow">catch</span> (Exception ee)
<a name="l01875"></a>01875                 {
<a name="l01876"></a>01876                     MessageBox.Show(<span class="stringliteral">&quot;Wrong format file&quot;</span> + ee.Message);
<a name="l01877"></a>01877                 }
<a name="l01878"></a>01878             <span class="keywordflow">else</span> toolStripMenuDefault.Checked = <span class="keyword">true</span>;
<a name="l01879"></a>01879         }
<a name="l01880"></a>01880 
<a name="l01881"></a>01881         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuDefault_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01882"></a>01882         {
<a name="l01883"></a>01883             <span class="keywordtype">int</span> i = Get_Index_Current_workingChart();
<a name="l01884"></a>01884             <span class="keywordflow">if</span> (i == -1) <span class="keywordflow">return</span>;
<a name="l01885"></a>01885             ChartV2.Control c = ActiveChart;
<a name="l01886"></a>01886             Sample.currentSample = <span class="stringliteral">&quot;Default&quot;</span>;
<a name="l01887"></a>01887             Sample.DefaultSample(c);
<a name="l01888"></a>01888             RefreshSample(c);
<a name="l01889"></a>01889             MenuSampleCheckedClear();
<a name="l01890"></a>01890             toolStripMenuDefault.Checked = <span class="keyword">true</span>;            
<a name="l01891"></a>01891          }
<a name="l01892"></a>01892 
<a name="l01893"></a>01893         <span class="keyword">private</span> <span class="keywordtype">void</span> RefreshSample(ChartV2.Control c)
<a name="l01894"></a>01894         {
<a name="l01895"></a>01895             c.ReDrawEveryThing(<span class="keyword">true</span>);
<a name="l01896"></a>01896         }
<a name="l01897"></a>01897 
<a name="l01898"></a>01898 
<a name="l01899"></a>01899         <span class="keyword">private</span> <span class="keywordtype">void</span> toolStripMenuSaveSample_Click(<span class="keywordtype">object</span> sender, EventArgs e)
<a name="l01900"></a>01900         {
<a name="l01901"></a>01901             
<a name="l01902"></a>01902             <span class="keywordtype">string</span> nameFile;
<a name="l01903"></a>01903             saveFileDialogSample.FileName = <span class="stringliteral">&quot;&quot;</span>;
<a name="l01904"></a>01904             saveFileDialogSample.InitialDirectory = Application.StartupPath;
<a name="l01905"></a>01905             saveFileDialogSample.Filter = <span class="stringliteral">&quot;SMP (*.smp)| *.smp&quot;</span>;
<a name="l01906"></a>01906             <span class="keywordflow">if</span> (saveFileDialogSample.ShowDialog() == DialogResult.OK)
<a name="l01907"></a>01907             {
<a name="l01908"></a>01908                 <a class="code" href="class_skilful_1_1_main_form.html#a064e5300891d789af659ec3b3ca7a541">smp</a> = <span class="keyword">new</span> Sample(ActiveChart); 
<a name="l01909"></a>01909                 BinaryFormatter formatter = <span class="keyword">new</span> BinaryFormatter();
<a name="l01910"></a>01910                 <span class="keyword">using</span> (Stream stream = File.Create(saveFileDialogSample.FileName))
<a name="l01911"></a>01911                 {
<a name="l01912"></a>01912                     formatter.Serialize(stream, <a class="code" href="class_skilful_1_1_main_form.html#a064e5300891d789af659ec3b3ca7a541">smp</a>);
<a name="l01913"></a>01913                     stream.Close();
<a name="l01914"></a>01914                 }
<a name="l01915"></a>01915                 nameFile = saveFileDialogSample.FileName;
<a name="l01916"></a>01916                 nameFile = nameFile.Substring(nameFile.LastIndexOf((<span class="keywordtype">char</span>)<span class="charliteral">&#39;\\&#39;</span>) + 1,nameFile.LastIndexOf(<span class="charliteral">&#39;.&#39;</span>) - nameFile.LastIndexOf((<span class="keywordtype">char</span>)<span class="charliteral">&#39;\\&#39;</span>) - 1);
<a name="l01917"></a>01917                 MenuSampleCheckedClear();
<a name="l01918"></a>01918                 toolStripMenuDefault.Checked = <span class="keyword">false</span>;  
<a name="l01919"></a>01919                 Sample.currentSample = nameFile;
<a name="l01920"></a>01920                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; toolStripMenuRemoveSample.DropDownItems.Count; i++)
<a name="l01921"></a>01921                     <span class="keywordflow">if</span> (nameFile == ((ToolStripMenuItem)toolStripMenuRemoveSample.DropDownItems[i]).Name)
<a name="l01922"></a>01922                         toolStripMenuRemoveSample.DropDownItems.RemoveAt(i);
<a name="l01923"></a>01923                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = CountDropMenu; j &lt; toolStripMenuSample.DropDownItems.Count; j++)
<a name="l01924"></a>01924                     <span class="keywordflow">if</span> (nameFile == ((ToolStripMenuItem)toolStripMenuSample.DropDownItems[j]).Name)
<a name="l01925"></a>01925                         toolStripMenuSample.DropDownItems.RemoveAt(j);      
<a name="l01926"></a>01926 
<a name="l01927"></a>01927 
<a name="l01928"></a>01928                 Add_menuItem_menuSample(nameFile, <span class="keyword">true</span>);
<a name="l01929"></a>01929                 Add_menuItem_menuSample(nameFile, <span class="keyword">false</span>);
<a name="l01930"></a>01930                 
<a name="l01931"></a>01931             }
<a name="l01932"></a>01932         }
<a name="l01933"></a>01933         
<a name="l01934"></a>01934     }
<a name="l01935"></a>01935 }
<a name="l01936"></a>01936        
<a name="l01937"></a>01937     
</pre></div></div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>Указатель</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Классы</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Пространства имен</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Файлы</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Функции</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Переменные</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Перечисления</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Свойства</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>События</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Создано системой&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>
